#region license

/*
WindowsMediaLib - Provide access to Windows Media interfaces via .NET
Copyright (C) 2005
http://sourceforge.net/projects/directshownet/

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

#endregion

using System;
using System.Text;
using System.Runtime.InteropServices;
using WindowsMediaLib.Defs;

namespace WindowsMediaLib
{
    #region API Declares
    sealed public class WMUtils
    {
        private WMUtils()
        {
        }

        /// <summary>
        ///  Free the nested structures and release any
        ///  COM objects within an WMMediaType struct.
        /// </summary>
        public static void FreeWMMediaType(AMMediaType mediaType)
        {
            if (mediaType != null)
            {
                if (mediaType.formatSize != 0)
                {
                    Marshal.FreeCoTaskMem(mediaType.formatPtr);
                    mediaType.formatSize = 0;
                    mediaType.formatPtr = IntPtr.Zero;
                }
                if (mediaType.unkPtr != IntPtr.Zero)
                {
                    Marshal.Release(mediaType.unkPtr);
                    mediaType.unkPtr = IntPtr.Zero;
                }
            }
        }


        [DllImport("WMVCore.dll")]
        public static extern int WMCreateEditor(
            out IWMMetadataEditor ppMetadataEditor
            );

        [DllImport("WMVCore.dll")]
        public static extern int WMCreateWriterNetworkSink(
            out IWMWriterNetworkSink ppSink
            );

        [DllImport("WMVCore.dll")]
        public static extern int WMCreateWriter(
            IntPtr pUnkCert,
            out IWMWriter ppWriter
            );	

        [DllImport("WMVCore.dll")]
        public static extern int WMCreateProfileManager (
            out IWMProfileManager ppProfileManager
            );

        [DllImport("WMVCore.dll")]
        public static extern int WMIsContentProtected(
            string pwszFileName,
            [MarshalAs(UnmanagedType.Bool)] out bool pfIsProtected
            );

        [DllImport("WMVCore.dll")]
        public static extern int WMCreateCertificate(
            [MarshalAs(UnmanagedType.IUnknown)] out object pUnkCert
            );

        [DllImport("WMVCore.dll")]
        public static extern int WMCreateReader(
            IntPtr pUnkCert,
            Rights dwRights,
            out IWMReader ppReader
            );

        [DllImport("WMVCore.dll")]
        public static extern int WMCreateSyncReader(
            IntPtr pUnkCert,
            Rights dwRights,
            out IWMSyncReader ppSyncReader );

        [DllImport("WMVCore.dll")]
        public static extern int WMCreateIndexer(
            out IWMIndexer ppIndexer
            );

        [DllImport("WMVCore.dll")]
        public static extern int WMCreateBackupRestorer(
            IWMStatusCallback pCallback,
            out IWMLicenseBackup ppBackup
            );

        [DllImport("WMVCore.dll")]
        public static extern int WMCreateWriterFileSink(
            out IWMWriterFileSink ppSink
            );

        [DllImport("WMVCore.dll")]
        public static extern int WMCreateWriterPushSink(
            out IWMWriterPushSink ppSink
            );
    }
    #endregion

    public class NSResults
    {
        public const int S_CALLPENDING                 = unchecked((int)0x000D0000);
        public const int S_CALLABORTED                 = unchecked((int)0x000D0001);
        public const int S_STREAM_TRUNCATED            = unchecked((int)0x000D0002);
        public const int W_SERVER_BANDWIDTH_LIMIT      = unchecked((int)0x800D0003);
        public const int W_FILE_BANDWIDTH_LIMIT        = unchecked((int)0x800D0004);
        public const int E_NOCONNECTION                = unchecked((int)0xC00D0005);
        public const int E_CANNOTCONNECT               = unchecked((int)0xC00D0006);
        public const int E_CANNOTDESTROYTITLE          = unchecked((int)0xC00D0007);
        public const int E_CANNOTRENAMETITLE           = unchecked((int)0xC00D0008);
        public const int E_CANNOTOFFLINEDISK           = unchecked((int)0xC00D0009);
        public const int E_CANNOTONLINEDISK            = unchecked((int)0xC00D000A);
        public const int E_NOREGISTEREDWALKER          = unchecked((int)0xC00D000B);
        public const int E_NOFUNNEL                    = unchecked((int)0xC00D000C);
        public const int E_NO_LOCALPLAY                = unchecked((int)0xC00D000D);
        public const int E_NETWORK_BUSY                = unchecked((int)0xC00D000E);
        public const int E_TOO_MANY_SESS               = unchecked((int)0xC00D000F);
        public const int E_ALREADY_CONNECTED           = unchecked((int)0xC00D0010);
        public const int E_INVALID_INDEX               = unchecked((int)0xC00D0011);
        public const int E_PROTOCOL_MISMATCH           = unchecked((int)0xC00D0012);
        public const int E_TIMEOUT                     = unchecked((int)0xC00D0013);
        public const int E_NET_WRITE                   = unchecked((int)0xC00D0014);
        public const int E_NET_READ                    = unchecked((int)0xC00D0015);
        public const int E_DISK_WRITE                  = unchecked((int)0xC00D0016);
        public const int E_DISK_READ                   = unchecked((int)0xC00D0017);
        public const int E_FILE_WRITE                  = unchecked((int)0xC00D0018);
        public const int E_FILE_READ                   = unchecked((int)0xC00D0019);
        public const int E_FILE_NOT_FOUND              = unchecked((int)0xC00D001A);
        public const int E_FILE_EXISTS                 = unchecked((int)0xC00D001B);
        public const int E_INVALID_NAME                = unchecked((int)0xC00D001C);
        public const int E_FILE_OPEN_FAILED            = unchecked((int)0xC00D001D);
        public const int E_FILE_ALLOCATION_FAILED      = unchecked((int)0xC00D001E);
        public const int E_FILE_INIT_FAILED            = unchecked((int)0xC00D001F);
        public const int E_FILE_PLAY_FAILED            = unchecked((int)0xC00D0020);
        public const int E_SET_DISK_UID_FAILED         = unchecked((int)0xC00D0021);
        public const int E_INDUCED                     = unchecked((int)0xC00D0022);
        public const int E_CCLINK_DOWN                 = unchecked((int)0xC00D0023);
        public const int E_INTERNAL                    = unchecked((int)0xC00D0024);
        public const int E_BUSY                        = unchecked((int)0xC00D0025);
        public const int E_UNRECOGNIZED_STREAM_TYPE    = unchecked((int)0xC00D0026);
        public const int E_NETWORK_SERVICE_FAILURE     = unchecked((int)0xC00D0027);
        public const int E_NETWORK_RESOURCE_FAILURE    = unchecked((int)0xC00D0028);
        public const int E_CONNECTION_FAILURE          = unchecked((int)0xC00D0029);
        public const int E_SHUTDOWN                    = unchecked((int)0xC00D002A);
        public const int E_INVALID_REQUEST             = unchecked((int)0xC00D002B);
        public const int E_INSUFFICIENT_BANDWIDTH      = unchecked((int)0xC00D002C);
        public const int E_NOT_REBUILDING              = unchecked((int)0xC00D002D);
        public const int E_LATE_OPERATION              = unchecked((int)0xC00D002E);
        public const int E_InvalidData                 = unchecked((int)0xC00D002F);
        public const int E_FILE_BANDWIDTH_LIMIT        = unchecked((int)0xC00D0030);
        public const int E_OPEN_FILE_LIMIT             = unchecked((int)0xC00D0031);
        public const int E_BAD_CONTROL_DATA            = unchecked((int)0xC00D0032);
        public const int E_NO_STREAM                   = unchecked((int)0xC00D0033);
        public const int E_STREAM_END                  = unchecked((int)0xC00D0034);
        public const int E_SERVER_NOT_FOUND            = unchecked((int)0xC00D0035);
        public const int E_DUPLICATE_NAME              = unchecked((int)0xC00D0036);
        public const int E_DUPLICATE_ADDRESS           = unchecked((int)0xC00D0037);
        public const int E_BAD_MULTICAST_ADDRESS       = unchecked((int)0xC00D0038);
        public const int E_BAD_ADAPTER_ADDRESS         = unchecked((int)0xC00D0039);
        public const int E_BAD_DELIVERY_MODE           = unchecked((int)0xC00D003A);
        public const int E_INVALID_CHANNEL             = unchecked((int)0xC00D003B);
        public const int E_INVALID_STREAM              = unchecked((int)0xC00D003C);
        public const int E_INVALID_ARCHIVE             = unchecked((int)0xC00D003D);
        public const int E_NOTITLES                    = unchecked((int)0xC00D003E);
        public const int E_INVALID_CLIENT              = unchecked((int)0xC00D003F);
        public const int E_INVALID_BLACKHOLE_ADDRESS   = unchecked((int)0xC00D0040);
        public const int E_INCOMPATIBLE_FORMAT         = unchecked((int)0xC00D0041);
        public const int E_INVALID_KEY                 = unchecked((int)0xC00D0042);
        public const int E_INVALID_PORT                = unchecked((int)0xC00D0043);
        public const int E_INVALID_TTL                 = unchecked((int)0xC00D0044);
        public const int E_STRIDE_REFUSED              = unchecked((int)0xC00D0045);
        public const int E_MMSAUTOSERVER_CANTFINDWALKER = unchecked((int)0xC00D0046);
        public const int E_MAX_BITRATE                 = unchecked((int)0xC00D0047);
        public const int E_LOGFILEPERIOD               = unchecked((int)0xC00D0048);
        public const int E_MAX_CLIENTS                 = unchecked((int)0xC00D0049);
        public const int E_LOG_FILE_SIZE               = unchecked((int)0xC00D004A);
        public const int E_MAX_FILERATE                = unchecked((int)0xC00D004B);
        public const int E_WALKER_UNKNOWN              = unchecked((int)0xC00D004C);
        public const int E_WALKER_SERVER               = unchecked((int)0xC00D004D);
        public const int E_WALKER_USAGE                = unchecked((int)0xC00D004E);
        public const int I_TIGER_START                 = unchecked((int)0x400D004F);
        public const int E_TIGER_FAIL                  = unchecked((int)0xC00D0050);
        public const int I_CUB_START                   = unchecked((int)0x400D0051);
        public const int I_CUB_RUNNING                 = unchecked((int)0x400D0052);
        public const int E_CUB_FAIL                    = unchecked((int)0xC00D0053);
        public const int I_DISK_START                  = unchecked((int)0x400D0054);
        public const int E_DISK_FAIL                   = unchecked((int)0xC00D0055);
        public const int I_DISK_REBUILD_STARTED        = unchecked((int)0x400D0056);
        public const int I_DISK_REBUILD_FINISHED       = unchecked((int)0x400D0057);
        public const int I_DISK_REBUILD_ABORTED        = unchecked((int)0x400D0058);
        public const int I_LIMIT_FUNNELS               = unchecked((int)0x400D0059);
        public const int I_START_DISK                  = unchecked((int)0x400D005A);
        public const int I_STOP_DISK                   = unchecked((int)0x400D005B);
        public const int I_STOP_CUB                    = unchecked((int)0x400D005C);
        public const int I_KILL_USERSESSION            = unchecked((int)0x400D005D);
        public const int I_KILL_CONNECTION             = unchecked((int)0x400D005E);
        public const int I_REBUILD_DISK                = unchecked((int)0x400D005F);
        public const int W_UNKNOWN_EVENT               = unchecked((int)0x800D0060);
        public const int E_MAX_FUNNELS_ALERT           = unchecked((int)0xC00D0060);
        public const int E_ALLOCATE_FILE_FAIL          = unchecked((int)0xC00D0061);
        public const int E_PAGING_ERROR                = unchecked((int)0xC00D0062);
        public const int E_BAD_BLOCK0_VERSION          = unchecked((int)0xC00D0063);
        public const int E_BAD_DISK_UID                = unchecked((int)0xC00D0064);
        public const int E_BAD_FSMAJOR_VERSION         = unchecked((int)0xC00D0065);
        public const int E_BAD_STAMPNUMBER             = unchecked((int)0xC00D0066);
        public const int E_PARTIALLY_REBUILT_DISK      = unchecked((int)0xC00D0067);
        public const int E_ENACTPLAN_GIVEUP            = unchecked((int)0xC00D0068);
        public const int E_NO_FORMATS                  = unchecked((int)0xC00D006B);
        public const int E_NO_REFERENCES               = unchecked((int)0xC00D006C);
        public const int E_WAVE_OPEN                   = unchecked((int)0xC00D006D);
        public const int I_LOGGING_FAILED              = unchecked((int)0x400D006E);
        public const int E_CANNOTCONNECTEVENTS         = unchecked((int)0xC00D006F);
        public const int I_LIMIT_BANDWIDTH             = unchecked((int)0x400D0070);
        public const int E_NO_DEVICE                   = unchecked((int)0xC00D0071);
        public const int E_NO_SPECIFIED_DEVICE         = unchecked((int)0xC00D0072);
        public const int E_NOTHING_TO_DO               = unchecked((int)0xC00D07F1);
        public const int E_NO_MULTICAST                = unchecked((int)0xC00D07F2);
        public const int E_MONITOR_GIVEUP              = unchecked((int)0xC00D00C8);
        public const int E_REMIRRORED_DISK             = unchecked((int)0xC00D00C9);
        public const int E_INSUFFICIENT_DATA           = unchecked((int)0xC00D00CA);
        public const int E_ASSERT                      = unchecked((int)0xC00D00CB);
        public const int E_BAD_ADAPTER_NAME            = unchecked((int)0xC00D00CC);
        public const int E_NOT_LICENSED                = unchecked((int)0xC00D00CD);
        public const int E_NO_SERVER_CONTACT           = unchecked((int)0xC00D00CE);
        public const int E_TOO_MANY_TITLES             = unchecked((int)0xC00D00CF);
        public const int E_TITLE_SIZE_EXCEEDED         = unchecked((int)0xC00D00D0);
        public const int E_UDP_DISABLED                = unchecked((int)0xC00D00D1);
        public const int E_TCP_DISABLED                = unchecked((int)0xC00D00D2);
        public const int E_HTTP_DISABLED               = unchecked((int)0xC00D00D3);
        public const int E_LICENSE_EXPIRED             = unchecked((int)0xC00D00D4);
        public const int E_TITLE_BITRATE               = unchecked((int)0xC00D00D5);
        public const int E_EMPTY_PROGRAM_NAME          = unchecked((int)0xC00D00D6);
        public const int E_MISSING_CHANNEL             = unchecked((int)0xC00D00D7);
        public const int E_NO_CHANNELS                 = unchecked((int)0xC00D00D8);
        public const int E_INVALID_INDEX2              = unchecked((int)0xC00D00D9);
        public const int E_CUB_FAIL_LINK               = unchecked((int)0xC00D0190);
        public const int I_CUB_UNFAIL_LINK             = unchecked((int)0x400D0191);
        public const int E_BAD_CUB_UID                 = unchecked((int)0xC00D0192);
        public const int I_RESTRIPE_START              = unchecked((int)0x400D0193);
        public const int I_RESTRIPE_DONE               = unchecked((int)0x400D0194);
        public const int E_GLITCH_MODE                 = unchecked((int)0xC00D0195);
        public const int I_RESTRIPE_DISK_OUT           = unchecked((int)0x400D0196);
        public const int I_RESTRIPE_CUB_OUT            = unchecked((int)0x400D0197);
        public const int I_DISK_STOP                   = unchecked((int)0x400D0198);
        public const int I_CATATONIC_FAILURE           = unchecked((int)0x800D0199);
        public const int I_CATATONIC_AUTO_UNFAIL       = unchecked((int)0x800D019A);
        public const int E_NO_MEDIA_PROTOCOL           = unchecked((int)0xC00D019B);
        public const int E_INVALID_INPUT_FORMAT        = unchecked((int)0xC00D0BB8);
        public const int E_MSAUDIO_NOT_INSTALLED       = unchecked((int)0xC00D0BB9);
        public const int E_UNEXPECTED_MSAUDIO_ERROR    = unchecked((int)0xC00D0BBA);
        public const int E_INVALID_OUTPUT_FORMAT       = unchecked((int)0xC00D0BBB);
        public const int E_NOT_CONFIGURED              = unchecked((int)0xC00D0BBC);
        public const int E_PROTECTED_CONTENT           = unchecked((int)0xC00D0BBD);
        public const int E_LICENSE_REQUIRED            = unchecked((int)0xC00D0BBE);
        public const int E_TAMPERED_CONTENT            = unchecked((int)0xC00D0BBF);
        public const int E_LICENSE_OUTOFDATE           = unchecked((int)0xC00D0BC0);
        public const int E_LICENSE_INCORRECT_RIGHTS    = unchecked((int)0xC00D0BC1);
        public const int E_AUDIO_CODEC_NOT_INSTALLED   = unchecked((int)0xC00D0BC2);
        public const int E_AUDIO_CODEC_ERROR           = unchecked((int)0xC00D0BC3);
        public const int E_VIDEO_CODEC_NOT_INSTALLED   = unchecked((int)0xC00D0BC4);
        public const int E_VIDEO_CODEC_ERROR           = unchecked((int)0xC00D0BC5);
        public const int E_INVALIDPROFILE              = unchecked((int)0xC00D0BC6);
        public const int E_INCOMPATIBLE_VERSION        = unchecked((int)0xC00D0BC7);
        public const int S_REBUFFERING                 = unchecked((int)0x000D0BC8);
        public const int S_DEGRADING_QUALITY           = unchecked((int)0x000D0BC9);
        public const int E_OFFLINE_MODE                = unchecked((int)0xC00D0BCA);
        public const int E_NOT_CONNECTED               = unchecked((int)0xC00D0BCB);
        public const int E_TOO_MUCH_DATA               = unchecked((int)0xC00D0BCC);
        public const int E_UNSUPPORTED_PROPERTY        = unchecked((int)0xC00D0BCD);
        public const int E_8BIT_WAVE_UNSUPPORTED       = unchecked((int)0xC00D0BCE);
        public const int E_NO_MORE_SAMPLES             = unchecked((int)0xC00D0BCF);
        public const int E_INVALID_SAMPLING_RATE       = unchecked((int)0xC00D0BD0);
        public const int E_MAX_PACKET_SIZE_TOO_SMALL   = unchecked((int)0xC00D0BD1);
        public const int E_LATE_PACKET                 = unchecked((int)0xC00D0BD2);
        public const int E_DUPLICATE_PACKET            = unchecked((int)0xC00D0BD3);
        public const int E_SDK_BUFFERTOOSMALL          = unchecked((int)0xC00D0BD4);
        public const int E_INVALID_NUM_PASSES          = unchecked((int)0xC00D0BD5);
        public const int E_ATTRIBUTE_READ_ONLY         = unchecked((int)0xC00D0BD6);
        public const int E_ATTRIBUTE_NOT_ALLOWED       = unchecked((int)0xC00D0BD7);
        public const int E_INVALID_EDL                 = unchecked((int)0xC00D0BD8);
        public const int E_DATA_UNIT_EXTENSION_TOO_LARGE = unchecked((int)0xC00D0BD9);
        public const int E_CODEC_DMO_ERROR             = unchecked((int)0xC00D0BDA);
        public const int E_NO_CD                       = unchecked((int)0xC00D0FA0);
        public const int E_CANT_READ_DIGITAL           = unchecked((int)0xC00D0FA1);
        public const int E_DEVICE_DISCONNECTED         = unchecked((int)0xC00D0FA2);
        public const int E_DEVICE_NOT_SUPPORT_FORMAT   = unchecked((int)0xC00D0FA3);
        public const int E_SLOW_READ_DIGITAL           = unchecked((int)0xC00D0FA4);
        public const int E_MIXER_INVALID_LINE          = unchecked((int)0xC00D0FA5);
        public const int E_MIXER_INVALID_CONTROL       = unchecked((int)0xC00D0FA6);
        public const int E_MIXER_INVALID_VALUE         = unchecked((int)0xC00D0FA7);
        public const int E_MIXER_UNKNOWN_MMRESULT      = unchecked((int)0xC00D0FA8);
        public const int E_USER_STOP                   = unchecked((int)0xC00D0FA9);
        public const int E_MP3_FORMAT_NOT_FOUND        = unchecked((int)0xC00D0FAA);
        public const int E_CD_READ_ERROR_NO_CORRECTION = unchecked((int)0xC00D0FAB);
        public const int E_CD_READ_ERROR               = unchecked((int)0xC00D0FAC);
        public const int E_CD_SLOW_COPY                = unchecked((int)0xC00D0FAD);
        public const int E_CD_COPYTO_CD                = unchecked((int)0xC00D0FAE);
        public const int E_MIXER_NODRIVER              = unchecked((int)0xC00D0FAF);
        public const int E_REDBOOK_ENABLED_WHILE_COPYING = unchecked((int)0xC00D0FB0);
        public const int E_CD_REFRESH                  = unchecked((int)0xC00D0FB1);
        public const int E_CD_DRIVER_PROBLEM           = unchecked((int)0xC00D0FB2);
        public const int E_WONT_DO_DIGITAL             = unchecked((int)0xC00D0FB3);
        public const int E_WMPXML_NOERROR              = unchecked((int)0xC00D0FB4);
        public const int E_WMPXML_ENDOFDATA            = unchecked((int)0xC00D0FB5);
        public const int E_WMPXML_PARSEERROR           = unchecked((int)0xC00D0FB6);
        public const int E_WMPXML_ATTRIBUTENOTFOUND    = unchecked((int)0xC00D0FB7);
        public const int E_WMPXML_PINOTFOUND           = unchecked((int)0xC00D0FB8);
        public const int E_WMPXML_EMPTYDOC             = unchecked((int)0xC00D0FB9);
        public const int E_WMP_WINDOWSAPIFAILURE       = unchecked((int)0xC00D0FC8);
        public const int E_WMP_RECORDING_NOT_ALLOWED   = unchecked((int)0xC00D0FC9);
        public const int E_DEVICE_NOT_READY            = unchecked((int)0xC00D0FCA);
        public const int E_DAMAGED_FILE                = unchecked((int)0xC00D0FCB);
        public const int E_MPDB_GENERIC                = unchecked((int)0xC00D0FCC);
        public const int E_FILE_FAILED_CHECKS          = unchecked((int)0xC00D0FCD);
        public const int E_MEDIA_LIBRARY_FAILED        = unchecked((int)0xC00D0FCE);
        public const int E_SHARING_VIOLATION           = unchecked((int)0xC00D0FCF);
        public const int E_NO_ERROR_STRING_FOUND       = unchecked((int)0xC00D0FD0);
        public const int E_WMPOCX_NO_REMOTE_CORE       = unchecked((int)0xC00D0FD1);
        public const int E_WMPOCX_NO_ACTIVE_CORE       = unchecked((int)0xC00D0FD2);
        public const int E_WMPOCX_NOT_RUNNING_REMOTELY = unchecked((int)0xC00D0FD3);
        public const int E_WMPOCX_NO_REMOTE_WINDOW     = unchecked((int)0xC00D0FD4);
        public const int E_WMPOCX_ERRORMANAGERNOTAVAILABLE = unchecked((int)0xC00D0FD5);
        public const int E_PLUGIN_NOTSHUTDOWN          = unchecked((int)0xC00D0FD6);
        public const int E_WMP_CANNOT_FIND_FOLDER      = unchecked((int)0xC00D0FD7);
        public const int E_WMP_STREAMING_RECORDING_NOT_ALLOWED = unchecked((int)0xC00D0FD8);
        public const int E_WMP_PLUGINDLL_NOTFOUND      = unchecked((int)0xC00D0FD9);
        public const int E_NEED_TO_ASK_USER            = unchecked((int)0xC00D0FDA);
        public const int E_WMPOCX_PLAYER_NOT_DOCKED    = unchecked((int)0xC00D0FDB);
        public const int E_WMP_EXTERNAL_NOTREADY       = unchecked((int)0xC00D0FDC);
        public const int E_WMP_MLS_STALE_DATA          = unchecked((int)0xC00D0FDD);    
        public const int E_WMP_UI_SUBCONTROLSNOTSUPPORTED = unchecked((int)0xC00D0FDE);
        public const int E_WMP_UI_VERSIONMISMATCH      = unchecked((int)0xC00D0FDF);
        public const int E_WMP_UI_NOTATHEMEFILE        = unchecked((int)0xC00D0FE0);
        public const int E_WMP_UI_SUBELEMENTNOTFOUND   = unchecked((int)0xC00D0FE1);
        public const int E_WMP_UI_VERSIONPARSE         = unchecked((int)0xC00D0FE2);
        public const int E_WMP_UI_VIEWIDNOTFOUND       = unchecked((int)0xC00D0FE3);
        public const int E_WMP_UI_PASSTHROUGH          = unchecked((int)0xC00D0FE4);
        public const int E_WMP_UI_OBJECTNOTFOUND       = unchecked((int)0xC00D0FE5);
        public const int E_WMP_UI_SECONDHANDLER        = unchecked((int)0xC00D0FE6);
        public const int E_WMP_UI_NOSKININZIP          = unchecked((int)0xC00D0FE7);
        public const int S_WMP_UI_VERSIONMISMATCH      = unchecked((int)0x000D0FE8);
        public const int S_WMP_EXCEPTION               = unchecked((int)0x000D0FE9);
        public const int E_WMP_URLDOWNLOADFAILED       = unchecked((int)0xC00D0FEA);
        public const int E_WMPOCX_UNABLE_TO_LOAD_SKIN  = unchecked((int)0xC00D0FEB);
        public const int E_WMP_INVALID_SKIN            = unchecked((int)0xC00D0FEC);
        public const int E_WMP_SENDMAILFAILED          = unchecked((int)0xC00D0FED);
        public const int E_WMP_SAVEAS_READONLY         = unchecked((int)0xC00D0FF0);
        public const int E_WMP_RBC_JPGMAPPINGIMAGE     = unchecked((int)0xC00D1004);
        public const int E_WMP_JPGTRANSPARENCY         = unchecked((int)0xC00D1005);
        public const int E_WMP_INVALID_MAX_VAL         = unchecked((int)0xC00D1009);
        public const int E_WMP_INVALID_MIN_VAL         = unchecked((int)0xC00D100A);
        public const int E_WMP_CS_JPGPOSITIONIMAGE     = unchecked((int)0xC00D100E);
        public const int E_WMP_CS_NOTEVENLYDIVISIBLE   = unchecked((int)0xC00D100F);
        public const int E_WMPZIP_NOTAZIPFILE          = unchecked((int)0xC00D1018);
        public const int E_WMPZIP_CORRUPT              = unchecked((int)0xC00D1019);
        public const int E_WMPZIP_FILENOTFOUND         = unchecked((int)0xC00D101A);
        public const int E_WMP_IMAGE_FILETYPE_UNSUPPORTED = unchecked((int)0xC00D1022);
        public const int E_WMP_IMAGE_INVALID_FORMAT    = unchecked((int)0xC00D1023);
        public const int E_WMP_GIF_UNEXPECTED_ENDOFFILE = unchecked((int)0xC00D1024);
        public const int E_WMP_GIF_INVALID_FORMAT      = unchecked((int)0xC00D1025);
        public const int E_WMP_GIF_BAD_VERSION_NUMBER  = unchecked((int)0xC00D1026);
        public const int E_WMP_GIF_NO_IMAGE_IN_FILE    = unchecked((int)0xC00D1027);
        public const int E_WMP_PNG_INVALIDFORMAT       = unchecked((int)0xC00D1028);
        public const int E_WMP_PNG_UNSUPPORTED_BITDEPTH = unchecked((int)0xC00D1029);
        public const int E_WMP_PNG_UNSUPPORTED_COMPRESSION = unchecked((int)0xC00D102A);
        public const int E_WMP_PNG_UNSUPPORTED_FILTER  = unchecked((int)0xC00D102B);
        public const int E_WMP_PNG_UNSUPPORTED_INTERLACE = unchecked((int)0xC00D102C);
        public const int E_WMP_PNG_UNSUPPORTED_BAD_CRC = unchecked((int)0xC00D102D);
        public const int E_WMP_BMP_INVALID_BITMASK     = unchecked((int)0xC00D102E);
        public const int E_WMP_BMP_TOPDOWN_DIB_UNSUPPORTED = unchecked((int)0xC00D102F);
        public const int E_WMP_BMP_BITMAP_NOT_CREATED  = unchecked((int)0xC00D1030);
        public const int E_WMP_BMP_COMPRESSION_UNSUPPORTED = unchecked((int)0xC00D1031);
        public const int E_WMP_BMP_INVALID_FORMAT      = unchecked((int)0xC00D1032);
        public const int E_WMP_JPG_JERR_ARITHCODING_NOTIMPL = unchecked((int)0xC00D1033);
        public const int E_WMP_JPG_INVALID_FORMAT      = unchecked((int)0xC00D1034);
        public const int E_WMP_JPG_BAD_DCTSIZE         = unchecked((int)0xC00D1035);
        public const int E_WMP_JPG_BAD_VERSION_NUMBER  = unchecked((int)0xC00D1036);
        public const int E_WMP_JPG_BAD_PRECISION       = unchecked((int)0xC00D1037);
        public const int E_WMP_JPG_CCIR601_NOTIMPL     = unchecked((int)0xC00D1038);
        public const int E_WMP_JPG_NO_IMAGE_IN_FILE    = unchecked((int)0xC00D1039);
        public const int E_WMP_JPG_READ_ERROR          = unchecked((int)0xC00D103A);
        public const int E_WMP_JPG_FRACT_SAMPLE_NOTIMPL = unchecked((int)0xC00D103B);
        public const int E_WMP_JPG_IMAGE_TOO_BIG       = unchecked((int)0xC00D103C);
        public const int E_WMP_JPG_UNEXPECTED_ENDOFFILE = unchecked((int)0xC00D103D);
        public const int E_WMP_JPG_SOF_UNSUPPORTED     = unchecked((int)0xC00D103E);
        public const int E_WMP_JPG_UNKNOWN_MARKER      = unchecked((int)0xC00D103F);
        public const int S_WMP_LOADED_GIF_IMAGE        = unchecked((int)0x000D1040);
        public const int S_WMP_LOADED_PNG_IMAGE        = unchecked((int)0x000D1041);
        public const int S_WMP_LOADED_BMP_IMAGE        = unchecked((int)0x000D1042);
        public const int S_WMP_LOADED_JPG_IMAGE        = unchecked((int)0x000D1043);
        public const int E_WMG_RATEUNAVAILABLE         = unchecked((int)0xC00D104A);
        public const int E_WMG_PLUGINUNAVAILABLE       = unchecked((int)0xC00D104B);
        public const int E_WMG_CANNOTQUEUE             = unchecked((int)0xC00D104C);
        public const int E_WMG_PREROLLLICENSEACQUISITIONNOTALLOWED = unchecked((int)0xC00D104D);
        public const int E_WMG_UNEXPECTEDPREROLLSTATUS = unchecked((int)0xC00D104E);
        public const int E_WMG_INVALIDSTATE            = unchecked((int)0xC00D1054);
        public const int E_WMG_SINKALREADYEXISTS       = unchecked((int)0xC00D1055);
        public const int E_WMG_NOSDKINTERFACE          = unchecked((int)0xC00D1056);
        public const int E_WMG_NOTALLOUTPUTSRENDERED   = unchecked((int)0xC00D1057);
        public const int E_WMG_FILETRANSFERNOTALLOWED  = unchecked((int)0xC00D1058);
        public const int E_WMR_UNSUPPORTEDSTREAM       = unchecked((int)0xC00D1059);
        public const int E_WMR_PINNOTFOUND             = unchecked((int)0xC00D105A);
        public const int E_WMR_WAITINGONFORMATSWITCH   = unchecked((int)0xC00D105B);
        public const int E_WMR_NOSOURCEFILTER          = unchecked((int)0xC00D105C);
        public const int E_WMR_PINTYPENOMATCH          = unchecked((int)0xC00D105D);
        public const int E_WMR_NOCALLBACKAVAILABLE     = unchecked((int)0xC00D105E);
        public const int S_WMR_ALREADYRENDERED         = unchecked((int)0x000D105F);
        public const int S_WMR_PINTYPEPARTIALMATCH     = unchecked((int)0x000D1060);
        public const int S_WMR_PINTYPEFULLMATCH        = unchecked((int)0x000D1061);
        public const int E_WMR_SAMPLEPROPERTYNOTSET    = unchecked((int)0xC00D1062);
        public const int E_WMR_CANNOT_RENDER_BINARY_STREAM = unchecked((int)0xC00D1063);
        public const int E_WMG_LICENSE_TAMPERED        = unchecked((int)0xC00D1064);
        public const int E_WMR_WILLNOT_RENDER_BINARY_STREAM = unchecked((int)0xC00D1065);
        public const int E_WMX_UNRECOGNIZED_PLAYLIST_FORMAT = unchecked((int)0xC00D1068);
        public const int E_ASX_INVALIDFORMAT           = unchecked((int)0xC00D1069);
        public const int E_ASX_INVALIDVERSION          = unchecked((int)0xC00D106A);
        public const int E_ASX_INVALID_REPEAT_BLOCK    = unchecked((int)0xC00D106B);
        public const int E_ASX_NOTHING_TO_WRITE        = unchecked((int)0xC00D106C);
        public const int E_URLLIST_INVALIDFORMAT       = unchecked((int)0xC00D106D);
        public const int E_WMX_ATTRIBUTE_DOES_NOT_EXIST = unchecked((int)0xC00D106E);
        public const int E_WMX_ATTRIBUTE_ALREADY_EXISTS = unchecked((int)0xC00D106F);
        public const int E_WMX_ATTRIBUTE_UNRETRIEVABLE = unchecked((int)0xC00D1070);
        public const int E_WMX_ITEM_DOES_NOT_EXIST     = unchecked((int)0xC00D1071);
        public const int E_WMX_ITEM_TYPE_ILLEGAL       = unchecked((int)0xC00D1072);
        public const int E_WMX_ITEM_UNSETTABLE         = unchecked((int)0xC00D1073);
        public const int E_WMX_PLAYLIST_EMPTY          = unchecked((int)0xC00D1074);
        public const int E_MLS_SMARTPLAYLIST_FILTER_NOT_REGISTERED = unchecked((int)0xC00D1075);
        public const int E_WMX_INVALID_FORMAT_OVER_NESTING = unchecked((int)0xC00D1076);
        public const int E_WMPCORE_NOSOURCEURLSTRING   = unchecked((int)0xC00D107C);
        public const int E_WMPCORE_COCREATEFAILEDFORGITOBJECT = unchecked((int)0xC00D107D);
        public const int E_WMPCORE_FAILEDTOGETMARSHALLEDEVENTHANDLERINTERFACE = unchecked((int)0xC00D107E);
        public const int E_WMPCORE_BUFFERTOOSMALL      = unchecked((int)0xC00D107F);
        public const int E_WMPCORE_UNAVAILABLE         = unchecked((int)0xC00D1080);
        public const int E_WMPCORE_INVALIDPLAYLISTMODE = unchecked((int)0xC00D1081);
        public const int E_WMPCORE_ITEMNOTINPLAYLIST   = unchecked((int)0xC00D1086);
        public const int E_WMPCORE_PLAYLISTEMPTY       = unchecked((int)0xC00D1087);
        public const int E_WMPCORE_NOBROWSER           = unchecked((int)0xC00D1088);
        public const int E_WMPCORE_UNRECOGNIZED_MEDIA_URL = unchecked((int)0xC00D1089);
        public const int E_WMPCORE_GRAPH_NOT_IN_LIST   = unchecked((int)0xC00D108A);
        public const int E_WMPCORE_PLAYLIST_EMPTY_OR_SINGLE_MEDIA = unchecked((int)0xC00D108B);
        public const int E_WMPCORE_ERRORSINKNOTREGISTERED = unchecked((int)0xC00D108C);
        public const int E_WMPCORE_ERRORMANAGERNOTAVAILABLE = unchecked((int)0xC00D108D);
        public const int E_WMPCORE_WEBHELPFAILED       = unchecked((int)0xC00D108E);
        public const int E_WMPCORE_MEDIA_ERROR_RESUME_FAILED = unchecked((int)0xC00D108F);
        public const int E_WMPCORE_NO_REF_IN_ENTRY     = unchecked((int)0xC00D1090);
        public const int E_WMPCORE_WMX_LIST_ATTRIBUTE_NAME_EMPTY = unchecked((int)0xC00D1091);
        public const int E_WMPCORE_WMX_LIST_ATTRIBUTE_NAME_ILLEGAL = unchecked((int)0xC00D1092);
        public const int E_WMPCORE_WMX_LIST_ATTRIBUTE_VALUE_EMPTY = unchecked((int)0xC00D1093);
        public const int E_WMPCORE_WMX_LIST_ATTRIBUTE_VALUE_ILLEGAL = unchecked((int)0xC00D1094);
        public const int E_WMPCORE_WMX_LIST_ITEM_ATTRIBUTE_NAME_EMPTY = unchecked((int)0xC00D1095);
        public const int E_WMPCORE_WMX_LIST_ITEM_ATTRIBUTE_NAME_ILLEGAL = unchecked((int)0xC00D1096);
        public const int E_WMPCORE_WMX_LIST_ITEM_ATTRIBUTE_VALUE_EMPTY = unchecked((int)0xC00D1097);
        public const int E_WMPCORE_LIST_ENTRY_NO_REF   = unchecked((int)0xC00D1098);
        public const int E_WMPCORE_MISNAMED_FILE       = unchecked((int)0xC00D1099);
        public const int E_WMPCORE_CODEC_NOT_TRUSTED   = unchecked((int)0xC00D109A);
        public const int E_WMPCORE_CODEC_NOT_FOUND     = unchecked((int)0xC00D109B);
        public const int E_WMPCORE_CODEC_DOWNLOAD_NOT_ALLOWED = unchecked((int)0xC00D109C);
        public const int E_WMPCORE_ERROR_DOWNLOADING_PLAYLIST = unchecked((int)0xC00D109D);
        public const int E_WMPCORE_FAILED_TO_BUILD_PLAYLIST = unchecked((int)0xC00D109E);
        public const int E_WMPCORE_PLAYLIST_ITEM_ALTERNATE_NONE = unchecked((int)0xC00D109F);
        public const int E_WMPCORE_PLAYLIST_ITEM_ALTERNATE_EXHAUSTED = unchecked((int)0xC00D10A0);
        public const int E_WMPCORE_PLAYLIST_ITEM_ALTERNATE_NAME_NOT_FOUND = unchecked((int)0xC00D10A1);
        public const int E_WMPCORE_PLAYLIST_ITEM_ALTERNATE_MORPH_FAILED = unchecked((int)0xC00D10A2);
        public const int E_WMPCORE_PLAYLIST_ITEM_ALTERNATE_INIT_FAILED = unchecked((int)0xC00D10A3);
        public const int E_WMPCORE_MEDIA_ALTERNATE_REF_EMPTY = unchecked((int)0xC00D10A4);
        public const int E_WMPCORE_PLAYLIST_NO_EVENT_NAME = unchecked((int)0xC00D10A5);
        public const int E_WMPCORE_PLAYLIST_EVENT_ATTRIBUTE_ABSENT = unchecked((int)0xC00D10A6);
        public const int E_WMPCORE_PLAYLIST_EVENT_EMPTY = unchecked((int)0xC00D10A7);
        public const int E_WMPCORE_PLAYLIST_STACK_EMPTY = unchecked((int)0xC00D10A8);
        public const int E_WMPCORE_CURRENT_MEDIA_NOT_ACTIVE = unchecked((int)0xC00D10A9);
        public const int E_WMPCORE_USER_CANCEL         = unchecked((int)0xC00D10AB);
        public const int E_WMPCORE_PLAYLIST_REPEAT_EMPTY = unchecked((int)0xC00D10AC);
        public const int E_WMPCORE_PLAYLIST_REPEAT_START_MEDIA_NONE = unchecked((int)0xC00D10AD);
        public const int E_WMPCORE_PLAYLIST_REPEAT_END_MEDIA_NONE = unchecked((int)0xC00D10AE);
        public const int E_WMPCORE_INVALID_PLAYLIST_URL = unchecked((int)0xC00D10AF);
        public const int E_WMPCORE_MISMATCHED_RUNTIME  = unchecked((int)0xC00D10B0);
        public const int E_WMPCORE_PLAYLIST_IMPORT_FAILED_NO_ITEMS = unchecked((int)0xC00D10B1);
        public const int E_WMPCORE_VIDEO_TRANSFORM_FILTER_INSERTION = unchecked((int)0xC00D10B2);
        public const int E_WMPCORE_MEDIA_UNAVAILABLE   = unchecked((int)0xC00D10B3);
        public const int E_WMPCORE_WMX_ENTRYREF_NO_REF = unchecked((int)0xC00D10B4);
        public const int E_WMPCORE_NO_PLAYABLE_MEDIA_IN_PLAYLIST = unchecked((int)0xC00D10B5);
        public const int E_WMPCORE_PLAYLIST_EMPTY_NESTED_PLAYLIST_SKIPPED_ITEMS = unchecked((int)0xC00D10B6);
        public const int E_WMPCORE_BUSY                = unchecked((int)0xC00D10B7);
        public const int E_WMPCORE_MEDIA_CHILD_PLAYLIST_UNAVAILABLE = unchecked((int)0xC00D10B8);
        public const int E_WMPCORE_MEDIA_NO_CHILD_PLAYLIST = unchecked((int)0xC00D10B9);
        public const int E_WMPCORE_FILE_NOT_FOUND      = unchecked((int)0xC00D10BA);
        public const int E_WMPCORE_TEMP_FILE_NOT_FOUND = unchecked((int)0xC00D10BB);
        public const int E_WMDM_REVOKED                = unchecked((int)0xC00D10BC);
        public const int E_DDRAW_GENERIC               = unchecked((int)0xC00D10BD);
        public const int E_DISPLAY_MODE_CHANGE_FAILED  = unchecked((int)0xC00D10BE);
        public const int E_PLAYLIST_CONTAINS_ERRORS    = unchecked((int)0xC00D10BF);
        public const int E_CHANGING_PROXY_NAME         = unchecked((int)0xC00D10C0);
        public const int E_CHANGING_PROXY_PORT         = unchecked((int)0xC00D10C1);
        public const int E_CHANGING_PROXY_EXCEPTIONLIST = unchecked((int)0xC00D10C2);
        public const int E_CHANGING_PROXYBYPASS        = unchecked((int)0xC00D10C3);
        public const int E_CHANGING_PROXY_PROTOCOL_NOT_FOUND = unchecked((int)0xC00D10C4);
        public const int E_GRAPH_NOAUDIOLANGUAGE       = unchecked((int)0xC00D10C5);
        public const int E_GRAPH_NOAUDIOLANGUAGESELECTED = unchecked((int)0xC00D10C6);
        public const int E_CORECD_NOTAMEDIACD          = unchecked((int)0xC00D10C7);
        public const int E_WMPCORE_MEDIA_URL_TOO_LONG  = unchecked((int)0xC00D10C8);
        public const int E_WMPFLASH_CANT_FIND_COM_SERVER = unchecked((int)0xC00D10C9);
        public const int E_WMPFLASH_INCOMPATIBLEVERSION = unchecked((int)0xC00D10CA);
        public const int E_WMPOCXGRAPH_IE_DISALLOWS_ACTIVEX_CONTROLS = unchecked((int)0xC00D10CB);
        public const int E_NEED_CORE_REFERENCE         = unchecked((int)0xC00D10CC);
        public const int E_MEDIACD_READ_ERROR          = unchecked((int)0xC00D10CD);
        public const int E_IE_DISALLOWS_ACTIVEX_CONTROLS = unchecked((int)0xC00D10CE);
        public const int E_FLASH_PLAYBACK_NOT_ALLOWED  = unchecked((int)0xC00D10CF);
        public const int E_UNABLE_TO_CREATE_RIP_LOCATION = unchecked((int)0xC00D10D0);
        public const int E_WMPCORE_SOME_CODECS_MISSING = unchecked((int)0xC00D10D1);
        public const int S_WMPCORE_PLAYLISTCLEARABORT  = unchecked((int)0x000D10FE);
        public const int S_WMPCORE_PLAYLISTREMOVEITEMABORT = unchecked((int)0x000D10FF);
        public const int S_WMPCORE_PLAYLIST_CREATION_PENDING = unchecked((int)0x000D1102);
        public const int S_WMPCORE_MEDIA_VALIDATION_PENDING = unchecked((int)0x000D1103);
        public const int S_WMPCORE_PLAYLIST_REPEAT_SECONDARY_SEGMENTS_IGNORED = unchecked((int)0x000D1104);
        public const int S_WMPCORE_COMMAND_NOT_AVAILABLE = unchecked((int)0x000D1105);
        public const int S_WMPCORE_PLAYLIST_NAME_AUTO_GENERATED = unchecked((int)0x000D1106);
        public const int S_WMPCORE_PLAYLIST_IMPORT_MISSING_ITEMS = unchecked((int)0x000D1107);
        public const int S_WMPCORE_PLAYLIST_COLLAPSED_TO_SINGLE_MEDIA = unchecked((int)0x000D1108);
        public const int S_WMPCORE_MEDIA_CHILD_PLAYLIST_OPEN_PENDING = unchecked((int)0x000D1109);
        public const int S_WMPCORE_MORE_NODES_AVAIABLE = unchecked((int)0x000D110A);
        public const int E_WMPIM_USEROFFLINE           = unchecked((int)0xC00D1126);
        public const int E_WMPIM_USERCANCELED          = unchecked((int)0xC00D1127);
        public const int E_WMPIM_DIALUPFAILED          = unchecked((int)0xC00D1128);
        public const int E_WINSOCK_ERROR_STRING        = unchecked((int)0xC00D1129);
        public const int E_WMPBR_NOLISTENER            = unchecked((int)0xC00D1130);
        public const int E_WMPBR_BACKUPCANCEL          = unchecked((int)0xC00D1131);
        public const int E_WMPBR_RESTORECANCEL         = unchecked((int)0xC00D1132);
        public const int E_WMPBR_ERRORWITHURL          = unchecked((int)0xC00D1133);
        public const int E_WMPBR_NAMECOLLISION         = unchecked((int)0xC00D1134);
        public const int S_WMPBR_SUCCESS               = unchecked((int)0x000D1135);
        public const int S_WMPBR_PARTIALSUCCESS        = unchecked((int)0x000D1136);
        public const int E_WMPBR_DRIVE_INVALID         = unchecked((int)0xC00D1137);
        public const int S_WMPEFFECT_TRANSPARENT       = unchecked((int)0x000D1144);
        public const int S_WMPEFFECT_OPAQUE            = unchecked((int)0x000D1145);
        public const int S_OPERATION_PENDING           = unchecked((int)0x000D114E);
        public const int E_DVD_NO_SUBPICTURE_STREAM    = unchecked((int)0xC00D1162);
        public const int E_DVD_COPY_PROTECT            = unchecked((int)0xC00D1163);
        public const int E_DVD_AUTHORING_PROBLEM       = unchecked((int)0xC00D1164);
        public const int E_DVD_INVALID_DISC_REGION     = unchecked((int)0xC00D1165);
        public const int E_DVD_COMPATIBLE_VIDEO_CARD   = unchecked((int)0xC00D1166);
        public const int E_DVD_MACROVISION             = unchecked((int)0xC00D1167);
        public const int E_DVD_SYSTEM_DECODER_REGION   = unchecked((int)0xC00D1168);
        public const int E_DVD_DISC_DECODER_REGION     = unchecked((int)0xC00D1169);
        public const int E_DVD_NO_VIDEO_STREAM         = unchecked((int)0xC00D116A);
        public const int E_DVD_NO_AUDIO_STREAM         = unchecked((int)0xC00D116B);
        public const int E_DVD_GRAPH_BUILDING          = unchecked((int)0xC00D116C);
        public const int E_DVD_NO_DECODER              = unchecked((int)0xC00D116D);
        public const int E_DVD_PARENTAL                = unchecked((int)0xC00D116E);
        public const int E_DVD_CANNOT_JUMP             = unchecked((int)0xC00D116F);
        public const int E_DVD_DEVICE_CONTENTION       = unchecked((int)0xC00D1170);
        public const int E_DVD_NO_VIDEO_MEMORY         = unchecked((int)0xC00D1171);
        public const int E_DVD_CANNOT_COPY_PROTECTED   = unchecked((int)0xC00D1172);
        public const int E_DVD_REQUIRED_PROPERTY_NOT_SET = unchecked((int)0xC00D1173);
        public const int E_DVD_INVALID_TITLE_CHAPTER   = unchecked((int)0xC00D1174);
        public const int E_NO_CD_BURNER                = unchecked((int)0xC00D1176);
        public const int E_DEVICE_IS_NOT_READY         = unchecked((int)0xC00D1177);
        public const int E_PDA_UNSUPPORTED_FORMAT      = unchecked((int)0xC00D1178);
        public const int E_NO_PDA                      = unchecked((int)0xC00D1179);
        public const int E_PDA_UNSPECIFIED_ERROR       = unchecked((int)0xC00D117A);
        public const int E_MEMSTORAGE_BAD_DATA         = unchecked((int)0xC00D117B);
        public const int E_PDA_FAIL_SELECT_DEVICE      = unchecked((int)0xC00D117C);
        public const int E_PDA_FAIL_READ_WAVE_FILE     = unchecked((int)0xC00D117D);
        public const int E_IMAPI_LOSSOFSTREAMING       = unchecked((int)0xC00D117E);
        public const int E_PDA_DEVICE_FULL             = unchecked((int)0xC00D117F);
        public const int E_FAIL_LAUNCH_ROXIO_PLUGIN    = unchecked((int)0xC00D1180);
        public const int E_PDA_DEVICE_FULL_IN_SESSION  = unchecked((int)0xC00D1181);
        public const int E_IMAPI_MEDIUM_INVALIDTYPE    = unchecked((int)0xC00D1182);
        public const int E_WMP_PROTOCOL_PROBLEM        = unchecked((int)0xC00D1194);
        public const int E_WMP_NO_DISK_SPACE           = unchecked((int)0xC00D1195);
        public const int E_WMP_LOGON_FAILURE           = unchecked((int)0xC00D1196);
        public const int E_WMP_CANNOT_FIND_FILE        = unchecked((int)0xC00D1197);
        public const int E_WMP_SERVER_INACCESSIBLE     = unchecked((int)0xC00D1198);
        public const int E_WMP_UNSUPPORTED_FORMAT      = unchecked((int)0xC00D1199);
        public const int E_WMP_DSHOW_UNSUPPORTED_FORMAT = unchecked((int)0xC00D119A);
        public const int E_WMP_PLAYLIST_EXISTS         = unchecked((int)0xC00D119B);
        public const int E_WMP_NONMEDIA_FILES          = unchecked((int)0xC00D119C);
        public const int E_WMP_INVALID_ASX             = unchecked((int)0xC00D119D);
        public const int E_WMP_ALREADY_IN_USE          = unchecked((int)0xC00D119E);
        public const int E_WMP_IMAPI_FAILURE           = unchecked((int)0xC00D119F);
        public const int E_WMP_WMDM_FAILURE            = unchecked((int)0xC00D11A0);
        public const int E_WMP_CODEC_NEEDED_WITH_4CC   = unchecked((int)0xC00D11A1);
        public const int E_WMP_CODEC_NEEDED_WITH_FORMATTAG = unchecked((int)0xC00D11A2);
        public const int E_WMP_MSSAP_NOT_AVAILABLE     = unchecked((int)0xC00D11A3);
        public const int E_WMP_WMDM_INTERFACEDEAD      = unchecked((int)0xC00D11A4);
        public const int E_WMP_WMDM_NOTCERTIFIED       = unchecked((int)0xC00D11A5);
        public const int E_WMP_WMDM_LICENSE_NOTEXIST   = unchecked((int)0xC00D11A6);
        public const int E_WMP_WMDM_LICENSE_EXPIRED    = unchecked((int)0xC00D11A7);
        public const int E_WMP_WMDM_BUSY               = unchecked((int)0xC00D11A8);
        public const int E_WMP_WMDM_NORIGHTS           = unchecked((int)0xC00D11A9);
        public const int E_WMP_WMDM_INCORRECT_RIGHTS   = unchecked((int)0xC00D11AA);
        public const int E_WMP_IMAPI_GENERIC           = unchecked((int)0xC00D11AB);
        public const int E_WMP_IMAPI_DEVICE_NOTPRESENT = unchecked((int)0xC00D11AD);
        public const int E_WMP_IMAPI_STASHINUSE        = unchecked((int)0xC00D11AE);
        public const int E_WMP_IMAPI_LOSS_OF_STREAMING = unchecked((int)0xC00D11AF);
        public const int E_WMP_SERVER_UNAVAILABLE      = unchecked((int)0xC00D11B0);
        public const int E_WMP_FILE_OPEN_FAILED        = unchecked((int)0xC00D11B1);
        public const int E_WMP_VERIFY_ONLINE           = unchecked((int)0xC00D11B2);
        public const int E_WMP_SERVER_NOT_RESPONDING   = unchecked((int)0xC00D11B3);
        public const int E_WMP_DRM_CORRUPT_BACKUP      = unchecked((int)0xC00D11B4);
        public const int E_WMP_DRM_LICENSE_SERVER_UNAVAILABLE = unchecked((int)0xC00D11B5);
        public const int E_WMP_NETWORK_FIREWALL        = unchecked((int)0xC00D11B6);
        public const int E_WMP_NO_REMOVABLE_MEDIA      = unchecked((int)0xC00D11B7);
        public const int E_WMP_PROXY_CONNECT_TIMEOUT   = unchecked((int)0xC00D11B8);
        public const int E_WMP_NEED_UPGRADE            = unchecked((int)0xC00D11B9);
        public const int E_WMP_AUDIO_HW_PROBLEM        = unchecked((int)0xC00D11BA);
        public const int E_WMP_INVALID_PROTOCOL        = unchecked((int)0xC00D11BB);
        public const int E_WMP_INVALID_LIBRARY_ADD     = unchecked((int)0xC00D11BC);
        public const int E_WMP_MMS_NOT_SUPPORTED       = unchecked((int)0xC00D11BD);
        public const int E_WMP_NO_PROTOCOLS_SELECTED   = unchecked((int)0xC00D11BE);
        public const int E_WMP_GOFULLSCREEN_FAILED     = unchecked((int)0xC00D11BF);
        public const int E_WMP_NETWORK_ERROR           = unchecked((int)0xC00D11C0);
        public const int E_WMP_CONNECT_TIMEOUT         = unchecked((int)0xC00D11C1);
        public const int E_WMP_MULTICAST_DISABLED      = unchecked((int)0xC00D11C2);
        public const int E_WMP_SERVER_DNS_TIMEOUT      = unchecked((int)0xC00D11C3);
        public const int E_WMP_PROXY_NOT_FOUND         = unchecked((int)0xC00D11C4);
        public const int E_WMP_TAMPERED_CONTENT        = unchecked((int)0xC00D11C5);
        public const int E_WMP_OUTOFMEMORY             = unchecked((int)0xC00D11C6);
        public const int E_WMP_AUDIO_CODEC_NOT_INSTALLED = unchecked((int)0xC00D11C7);
        public const int E_WMP_VIDEO_CODEC_NOT_INSTALLED = unchecked((int)0xC00D11C8);
        public const int E_WMP_IMAPI_DEVICE_INVALIDTYPE = unchecked((int)0xC00D11C9);
        public const int E_WMP_DRM_DRIVER_AUTH_FAILURE = unchecked((int)0xC00D11CA);
        public const int E_WMP_NETWORK_RESOURCE_FAILURE = unchecked((int)0xC00D11CB);
        public const int E_WMP_UPGRADE_APPLICATION     = unchecked((int)0xC00D11CC);
        public const int E_WMP_UNKNOWN_ERROR           = unchecked((int)0xC00D11CD);
        public const int E_WMP_INVALID_KEY             = unchecked((int)0xC00D11CE);
        public const int E_WMP_CD_ANOTHER_USER         = unchecked((int)0xC00D11CF);
        public const int E_WMP_DRM_NEEDS_AUTHORIZATION = unchecked((int)0xC00D11D0);
        public const int E_WMP_BAD_DRIVER              = unchecked((int)0xC00D11D1);
        public const int E_WMP_ACCESS_DENIED           = unchecked((int)0xC00D11D2);
        public const int E_WMP_LICENSE_RESTRICTS       = unchecked((int)0xC00D11D3);
        public const int E_WMP_INVALID_REQUEST         = unchecked((int)0xC00D11D4);
        public const int E_WMP_CD_STASH_NO_SPACE       = unchecked((int)0xC00D11D5);
        public const int E_WMP_DRM_NEW_HARDWARE        = unchecked((int)0xC00D11D6);
        public const int E_WMP_DRM_INVALID_SIG         = unchecked((int)0xC00D11D7);
        public const int E_WMP_DRM_CANNOT_RESTORE      = unchecked((int)0xC00D11D8);
        public const int E_CD_NO_BUFFERS_READ          = unchecked((int)0xC00D11F8);
        public const int E_CD_EMPTY_TRACK_QUEUE        = unchecked((int)0xC00D11F9);
        public const int E_CD_NO_READER                = unchecked((int)0xC00D11FA);
        public const int E_CD_ISRC_INVALID             = unchecked((int)0xC00D11FB);
        public const int E_CD_MEDIA_CATALOG_NUMBER_INVALID = unchecked((int)0xC00D11FC);
        public const int E_SLOW_READ_DIGITAL_WITH_ERRORCORRECTION = unchecked((int)0xC00D11FD);
        public const int E_CD_SPEEDDETECT_NOT_ENOUGH_READS = unchecked((int)0xC00D11FE);
        public const int E_CD_QUEUEING_DISABLED        = unchecked((int)0xC00D11FF);
        public const int E_WMP_POLICY_VALUE_NOT_CONFIGURED = unchecked((int)0xC00D122A);
        public const int E_WMP_HWND_NOTFOUND           = unchecked((int)0xC00D125C);
        public const int E_BKGDOWNLOAD_WRONG_NO_FILES  = unchecked((int)0xC00D125D);
        public const int E_BKGDOWNLOAD_COMPLETECANCELLEDJOB = unchecked((int)0xC00D125E);
        public const int E_BKGDOWNLOAD_CANCELCOMPLETEDJOB = unchecked((int)0xC00D125F);
        public const int E_BKGDOWNLOAD_NOJOBPOINTER    = unchecked((int)0xC00D1260);
        public const int E_BKGDOWNLOAD_INVALIDJOBSIGNATURE = unchecked((int)0xC00D1261);
        public const int E_BKGDOWNLOAD_FAILED_TO_CREATE_TEMPFILE = unchecked((int)0xC00D1262);
        public const int E_BKGDOWNLOAD_PLUGIN_FAILEDINITIALIZE = unchecked((int)0xC00D1263);
        public const int E_BKGDOWNLOAD_PLUGIN_FAILEDTOMOVEFILE = unchecked((int)0xC00D1264);
        public const int E_BKGDOWNLOAD_CALLFUNCFAILED  = unchecked((int)0xC00D1265);
        public const int E_BKGDOWNLOAD_CALLFUNCTIMEOUT = unchecked((int)0xC00D1266);
        public const int E_BKGDOWNLOAD_CALLFUNCENDED   = unchecked((int)0xC00D1267);
        public const int E_BKGDOWNLOAD_WMDUNPACKFAILED = unchecked((int)0xC00D1268);
        public const int E_BKGDOWNLOAD_FAILEDINITIALIZE = unchecked((int)0xC00D1269);
        public const int E_INTERFACE_NOT_REGISTERED_IN_GIT = unchecked((int)0xC00D126A);
        public const int E_BKGDOWNLOAD_INVALID_FILE_NAME = unchecked((int)0xC00D126B);
        public const int E_IMAGE_DOWNLOAD_FAILED       = unchecked((int)0xC00D128E);
        public const int E_WMP_UDRM_NOUSERLIST         = unchecked((int)0xC00D12C0);
        public const int E_WMP_DRM_NOT_ACQUIRING       = unchecked((int)0xC00D12C1);
        public const int E_WMP_BSTR_TOO_LONG           = unchecked((int)0xC00D12F2);
        public const int E_WMP_AUTOPLAY_INVALID_STATE  = unchecked((int)0xC00D12FC);
        public const int E_CURL_NOTSAFE                = unchecked((int)0xC00D1324);
        public const int E_CURL_INVALIDCHAR            = unchecked((int)0xC00D1325);
        public const int E_CURL_INVALIDHOSTNAME        = unchecked((int)0xC00D1326);
        public const int E_CURL_INVALIDPATH            = unchecked((int)0xC00D1327);
        public const int E_CURL_INVALIDSCHEME          = unchecked((int)0xC00D1328);
        public const int E_CURL_INVALIDURL             = unchecked((int)0xC00D1329);
        public const int E_CURL_CANTWALK               = unchecked((int)0xC00D132B);
        public const int E_CURL_INVALIDPORT            = unchecked((int)0xC00D132C);
        public const int E_CURLHELPER_NOTADIRECTORY    = unchecked((int)0xC00D132D);
        public const int E_CURLHELPER_NOTAFILE         = unchecked((int)0xC00D132E);
        public const int E_CURL_CANTDECODE             = unchecked((int)0xC00D132F);
        public const int E_CURLHELPER_NOTRELATIVE      = unchecked((int)0xC00D1330);
        public const int E_CURL_INVALIDBUFFERSIZE      = unchecked((int)0xC00D1355);
        public const int E_SUBSCRIPTIONSERVICE_PLAYBACK_DISALLOWED = unchecked((int)0xC00D1356);
        public const int E_ADVANCEDEDIT_TOO_MANY_PICTURES = unchecked((int)0xC00D136A);
        public const int E_REDIRECT                    = unchecked((int)0xC00D1388);
        public const int E_STALE_PRESENTATION          = unchecked((int)0xC00D1389);
        public const int E_NAMESPACE_WRONG_PERSIST     = unchecked((int)0xC00D138A);
        public const int E_NAMESPACE_WRONG_TYPE        = unchecked((int)0xC00D138B);
        public const int E_NAMESPACE_NODE_CONFLICT     = unchecked((int)0xC00D138C);
        public const int E_NAMESPACE_NODE_NOT_FOUND    = unchecked((int)0xC00D138D);
        public const int E_NAMESPACE_BUFFER_TOO_SMALL  = unchecked((int)0xC00D138E);
        public const int E_NAMESPACE_TOO_MANY_CALLBACKS = unchecked((int)0xC00D138F);
        public const int E_NAMESPACE_DUPLICATE_CALLBACK = unchecked((int)0xC00D1390);
        public const int E_NAMESPACE_CALLBACK_NOT_FOUND = unchecked((int)0xC00D1391);
        public const int E_NAMESPACE_NAME_TOO_LONG     = unchecked((int)0xC00D1392);
        public const int E_NAMESPACE_DUPLICATE_NAME    = unchecked((int)0xC00D1393);
        public const int E_NAMESPACE_EMPTY_NAME        = unchecked((int)0xC00D1394);
        public const int E_NAMESPACE_INDEX_TOO_LARGE   = unchecked((int)0xC00D1395);
        public const int E_NAMESPACE_BAD_NAME          = unchecked((int)0xC00D1396);
        public const int E_NAMESPACE_WRONG_SECURITY    = unchecked((int)0xC00D1397);
        public const int E_CACHE_ARCHIVE_CONFLICT      = unchecked((int)0xC00D13EC);
        public const int E_CACHE_ORIGIN_SERVER_NOT_FOUND = unchecked((int)0xC00D13ED);
        public const int E_CACHE_ORIGIN_SERVER_TIMEOUT = unchecked((int)0xC00D13EE);
        public const int E_CACHE_NOT_BROADCAST         = unchecked((int)0xC00D13EF);
        public const int E_CACHE_CANNOT_BE_CACHED      = unchecked((int)0xC00D13F0);
        public const int E_CACHE_NOT_MODIFIED          = unchecked((int)0xC00D13F1);
        public const int E_CANNOT_REMOVE_PUBLISHING_POINT = unchecked((int)0xC00D1450);
        public const int E_CANNOT_REMOVE_PLUGIN        = unchecked((int)0xC00D1451);
        public const int E_WRONG_PUBLISHING_POINT_TYPE = unchecked((int)0xC00D1452);
        public const int E_UNSUPPORTED_LOAD_TYPE       = unchecked((int)0xC00D1453);
        public const int E_INVALID_PLUGIN_LOAD_TYPE_CONFIGURATION = unchecked((int)0xC00D1454);
        public const int E_INVALID_PUBLISHING_POINT_NAME = unchecked((int)0xC00D1455);
        public const int E_TOO_MANY_MULTICAST_SINKS    = unchecked((int)0xC00D1456);
        public const int E_PUBLISHING_POINT_INVALID_REQUEST_WHILE_STARTED = unchecked((int)0xC00D1457);
        public const int E_MULTICAST_PLUGIN_NOT_ENABLED = unchecked((int)0xC00D1458);
        public const int E_INVALID_OPERATING_SYSTEM_VERSION = unchecked((int)0xC00D1459);
        public const int E_PUBLISHING_POINT_REMOVED    = unchecked((int)0xC00D145A);
        public const int E_INVALID_PUSH_PUBLISHING_POINT_START_REQUEST = unchecked((int)0xC00D145B);
        public const int E_UNSUPPORTED_LANGUAGE        = unchecked((int)0xC00D145C);
        public const int E_WRONG_OS_VERSION            = unchecked((int)0xC00D145D);
        public const int E_PUBLISHING_POINT_STOPPED    = unchecked((int)0xC00D145E);
        public const int E_PLAYLIST_ENTRY_ALREADY_PLAYING = unchecked((int)0xC00D14B4);
        public const int E_EMPTY_PLAYLIST              = unchecked((int)0xC00D14B5);
        public const int E_PLAYLIST_PARSE_FAILURE      = unchecked((int)0xC00D14B6);
        public const int E_PLAYLIST_UNSUPPORTED_ENTRY  = unchecked((int)0xC00D14B7);
        public const int E_PLAYLIST_ENTRY_NOT_IN_PLAYLIST = unchecked((int)0xC00D14B8);
        public const int E_PLAYLIST_ENTRY_SEEK         = unchecked((int)0xC00D14B9);
        public const int E_PLAYLIST_RECURSIVE_PLAYLISTS = unchecked((int)0xC00D14BA);
        public const int E_PLAYLIST_TOO_MANY_NESTED_PLAYLISTS = unchecked((int)0xC00D14BB);
        public const int E_PLAYLIST_SHUTDOWN           = unchecked((int)0xC00D14BC);
        public const int E_PLAYLIST_END_RECEDING       = unchecked((int)0xC00D14BD);
        public const int I_PLAYLIST_CHANGE_RECEDING    = unchecked((int)0x400D14BE);
        public const int E_DATAPATH_NO_SINK            = unchecked((int)0xC00D1518);
        public const int S_PUBLISHING_POINT_STARTED_WITH_FAILED_SINKS = unchecked((int)0x000D1519);
        public const int E_INVALID_PUSH_TEMPLATE       = unchecked((int)0xC00D151A);
        public const int E_INVALID_PUSH_PUBLISHING_POINT = unchecked((int)0xC00D151B);
        public const int E_CRITICAL_ERROR              = unchecked((int)0xC00D151C);
        public const int E_NO_NEW_CONNECTIONS          = unchecked((int)0xC00D151D);
        public const int E_WSX_INVALID_VERSION         = unchecked((int)0xC00D151E);
        public const int E_HEADER_MISMATCH             = unchecked((int)0xC00D151F);
        public const int E_PUSH_DUPLICATE_PUBLISHING_POINT_NAME = unchecked((int)0xC00D1520);
        public const int E_NO_SCRIPT_ENGINE            = unchecked((int)0xC00D157C);
        public const int E_PLUGIN_ERROR_REPORTED       = unchecked((int)0xC00D157D);
        public const int E_SOURCE_PLUGIN_NOT_FOUND     = unchecked((int)0xC00D157E);
        public const int E_PLAYLIST_PLUGIN_NOT_FOUND   = unchecked((int)0xC00D157F);
        public const int E_DATA_SOURCE_ENUMERATION_NOT_SUPPORTED = unchecked((int)0xC00D1580);
        public const int E_MEDIA_PARSER_INVALID_FORMAT = unchecked((int)0xC00D1581);
        public const int E_SCRIPT_DEBUGGER_NOT_INSTALLED = unchecked((int)0xC00D1582);
        public const int E_FEATURE_REQUIRES_ENTERPRISE_SERVER = unchecked((int)0xC00D1583);
        public const int E_WIZARD_RUNNING              = unchecked((int)0xC00D1584);
        public const int E_INVALID_LOG_URL             = unchecked((int)0xC00D1585);
        public const int E_INVALID_MTU_RANGE           = unchecked((int)0xC00D1586);
        public const int E_INVALID_PLAY_STATISTICS     = unchecked((int)0xC00D1587);
        public const int E_LOG_NEED_TO_BE_SKIPPED      = unchecked((int)0xC00D1588);
        public const int E_HTTP_TEXT_DATACONTAINER_SIZE_LIMIT_EXCEEDED = unchecked((int)0xC00D1589);
        public const int E_PORT_IN_USE                 = unchecked((int)0xC00D158A);
        public const int E_PORT_IN_USE_HTTP            = unchecked((int)0xC00D158B);
        public const int E_HTTP_TEXT_DATACONTAINER_INVALID_SERVER_RESPONSE = unchecked((int)0xC00D158C);
        public const int E_ARCHIVE_REACH_QUOTA         = unchecked((int)0xC00D158D);
        public const int E_ARCHIVE_ABORT_DUE_TO_BCAST  = unchecked((int)0xC00D158E);
        public const int E_ARCHIVE_GAP_DETECTED        = unchecked((int)0xC00D158F);
        public const int E_BAD_MARKIN                  = unchecked((int)0xC00D1B58);
        public const int E_BAD_MARKOUT                 = unchecked((int)0xC00D1B59);
        public const int E_NOMATCHING_MEDIASOURCE      = unchecked((int)0xC00D1B5A);
        public const int E_UNSUPPORTED_SOURCETYPE      = unchecked((int)0xC00D1B5B);
        public const int E_TOO_MANY_AUDIO              = unchecked((int)0xC00D1B5C);
        public const int E_TOO_MANY_VIDEO              = unchecked((int)0xC00D1B5D);
        public const int E_NOMATCHING_ELEMENT          = unchecked((int)0xC00D1B5E);
        public const int E_MISMATCHED_MEDIACONTENT     = unchecked((int)0xC00D1B5F);
        public const int E_CANNOT_DELETE_ACTIVE_SOURCEGROUP = unchecked((int)0xC00D1B60);
        public const int E_AUDIODEVICE_BUSY            = unchecked((int)0xC00D1B61);
        public const int E_AUDIODEVICE_UNEXPECTED      = unchecked((int)0xC00D1B62);
        public const int E_AUDIODEVICE_BADFORMAT       = unchecked((int)0xC00D1B63);
        public const int E_VIDEODEVICE_BUSY            = unchecked((int)0xC00D1B64);
        public const int E_VIDEODEVICE_UNEXPECTED      = unchecked((int)0xC00D1B65);
        public const int E_INVALIDCALL_WHILE_ENCODER_RUNNING = unchecked((int)0xC00D1B66);
        public const int E_NO_PROFILE_IN_SOURCEGROUP   = unchecked((int)0xC00D1B67);
        public const int E_VIDEODRIVER_UNSTABLE        = unchecked((int)0xC00D1B68);
        public const int E_VIDCAPSTARTFAILED           = unchecked((int)0xC00D1B69);
        public const int E_VIDSOURCECOMPRESSION        = unchecked((int)0xC00D1B6A);
        public const int E_VIDSOURCESIZE               = unchecked((int)0xC00D1B6B);
        public const int E_ICMQUERYFORMAT              = unchecked((int)0xC00D1B6C);
        public const int E_VIDCAPCREATEWINDOW          = unchecked((int)0xC00D1B6D);
        public const int E_VIDCAPDRVINUSE              = unchecked((int)0xC00D1B6E);
        public const int E_NO_MEDIAFORMAT_IN_SOURCE    = unchecked((int)0xC00D1B6F);
        public const int E_NO_VALID_OUTPUT_STREAM      = unchecked((int)0xC00D1B70);
        public const int E_NO_VALID_SOURCE_PLUGIN      = unchecked((int)0xC00D1B71);
        public const int E_NO_ACTIVE_SOURCEGROUP       = unchecked((int)0xC00D1B72);
        public const int E_NO_SCRIPT_STREAM            = unchecked((int)0xC00D1B73);
        public const int E_INVALIDCALL_WHILE_ARCHIVAL_RUNNING = unchecked((int)0xC00D1B74);
        public const int E_INVALIDPACKETSIZE           = unchecked((int)0xC00D1B75);
        public const int E_PLUGIN_CLSID_INVALID        = unchecked((int)0xC00D1B76);
        public const int E_UNSUPPORTED_ARCHIVETYPE     = unchecked((int)0xC00D1B77);
        public const int E_UNSUPPORTED_ARCHIVEOPERATION = unchecked((int)0xC00D1B78);
        public const int E_ARCHIVE_FILENAME_NOTSET     = unchecked((int)0xC00D1B79);
        public const int E_SOURCEGROUP_NOTPREPARED     = unchecked((int)0xC00D1B7A);
        public const int E_PROFILE_MISMATCH            = unchecked((int)0xC00D1B7B);
        public const int E_INCORRECTCLIPSETTINGS       = unchecked((int)0xC00D1B7C);
        public const int E_NOSTATSAVAILABLE            = unchecked((int)0xC00D1B7D);
        public const int E_NOTARCHIVING                = unchecked((int)0xC00D1B7E);
        public const int E_INVALIDCALL_WHILE_ENCODER_STOPPED = unchecked((int)0xC00D1B7F);
        public const int E_NOSOURCEGROUPS              = unchecked((int)0xC00D1B80);
        public const int E_INVALIDINPUTFPS             = unchecked((int)0xC00D1B81);
        public const int E_NO_DATAVIEW_SUPPORT         = unchecked((int)0xC00D1B82);
        public const int E_CODEC_UNAVAILABLE           = unchecked((int)0xC00D1B83);
        public const int E_ARCHIVE_SAME_AS_INPUT       = unchecked((int)0xC00D1B84);
        public const int E_SOURCE_NOTSPECIFIED         = unchecked((int)0xC00D1B85);
        public const int E_NO_REALTIME_TIMECOMPRESSION = unchecked((int)0xC00D1B86);
        public const int E_UNSUPPORTED_ENCODER_DEVICE  = unchecked((int)0xC00D1B87);
        public const int E_UNEXPECTED_DISPLAY_SETTINGS = unchecked((int)0xC00D1B88);
        public const int E_NO_AUDIODATA                = unchecked((int)0xC00D1B89);
        public const int E_INPUTSOURCE_PROBLEM         = unchecked((int)0xC00D1B8A);
        public const int E_WME_VERSION_MISMATCH        = unchecked((int)0xC00D1B8B);
        public const int E_NO_REALTIME_PREPROCESS      = unchecked((int)0xC00D1B8C);
        public const int E_NO_REPEAT_PREPROCESS        = unchecked((int)0xC00D1B8D);
        public const int E_CANNOT_PAUSE_LIVEBROADCAST  = unchecked((int)0xC00D1B8E);
        public const int E_DRM_PROFILE_NOT_SET         = unchecked((int)0xC00D1B8F);
        public const int E_DUPLICATE_DRMPROFILE        = unchecked((int)0xC00D1B90);
        public const int E_INVALID_DEVICE              = unchecked((int)0xC00D1B91);
        public const int E_SPEECHEDL_ON_NON_MIXEDMODE  = unchecked((int)0xC00D1B92);
        public const int E_DRM_PASSWORD_TOO_LONG       = unchecked((int)0xC00D1B93);
        public const int E_DEVCONTROL_FAILED_SEEK      = unchecked((int)0xC00D1B94);
        public const int E_INTERLACE_REQUIRE_SAMESIZE  = unchecked((int)0xC00D1B95);
        public const int E_TOO_MANY_DEVICECONTROL      = unchecked((int)0xC00D1B96);
        public const int E_NO_MULTIPASS_FOR_LIVEDEVICE = unchecked((int)0xC00D1B97);
        public const int E_MISSING_AUDIENCE            = unchecked((int)0xC00D1B98);
        public const int E_AUDIENCE_CONTENTTYPE_MISMATCH = unchecked((int)0xC00D1B99);
        public const int E_MISSING_SOURCE_INDEX        = unchecked((int)0xC00D1B9A);
        public const int E_NUM_LANGUAGE_MISMATCH       = unchecked((int)0xC00D1B9B);
        public const int E_LANGUAGE_MISMATCH           = unchecked((int)0xC00D1B9C);
        public const int E_VBRMODE_MISMATCH            = unchecked((int)0xC00D1B9D);
        public const int E_INVALID_INPUT_AUDIENCE_INDEX = unchecked((int)0xC00D1B9E);
        public const int E_INVALID_INPUT_LANGUAGE      = unchecked((int)0xC00D1B9F);
        public const int E_INVALID_INPUT_STREAM        = unchecked((int)0xC00D1BA0);
        public const int E_EXPECT_MONO_WAV_INPUT       = unchecked((int)0xC00D1BA1);
        public const int E_INPUT_WAVFORMAT_MISMATCH    = unchecked((int)0xC00D1BA2);
        public const int E_RECORDQ_DISK_FULL           = unchecked((int)0xC00D1BA3);
        public const int E_NO_PAL_INVERSE_TELECINE     = unchecked((int)0xC00D1BA4);
        public const int E_ACTIVE_SG_DEVICE_DISCONNECTED = unchecked((int)0xC00D1BA5);
        public const int E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED = unchecked((int)0xC00D1BA6);
        public const int E_NO_FRAMES_SUBMITTED_TO_ANALYZER = unchecked((int)0xC00D1BA7);
        public const int E_INPUT_DOESNOT_SUPPORT_SMPTE = unchecked((int)0xC00D1BA8);
        public const int E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS = unchecked((int)0xC00D1BA9);
        public const int E_BAD_CONTENTEDL              = unchecked((int)0xC00D1BAA);
        public const int E_INTERLACEMODE_MISMATCH      = unchecked((int)0xC00D1BAB);
        public const int E_NONSQUAREPIXELMODE_MISMATCH = unchecked((int)0xC00D1BAC);
        public const int E_SMPTEMODE_MISMATCH          = unchecked((int)0xC00D1BAD);
        public const int E_END_OF_TAPE                 = unchecked((int)0xC00D1BAE);
        public const int E_NO_MEDIA_IN_AUDIENCE        = unchecked((int)0xC00D1BAF);
        public const int E_NO_AUDIENCES                = unchecked((int)0xC00D1BB0);
        public const int E_NO_AUDIO_COMPAT             = unchecked((int)0xC00D1BB1);
        public const int E_INVALID_VBR_COMPAT          = unchecked((int)0xC00D1BB2);
        public const int E_NO_PROFILE_NAME             = unchecked((int)0xC00D1BB3);
        public const int E_INVALID_VBR_WITH_UNCOMP     = unchecked((int)0xC00D1BB4);
        public const int E_MULTIPLE_VBR_AUDIENCES      = unchecked((int)0xC00D1BB5);
        public const int E_UNCOMP_COMP_COMBINATION     = unchecked((int)0xC00D1BB6);
        public const int E_MULTIPLE_AUDIO_CODECS       = unchecked((int)0xC00D1BB7);
        public const int E_MULTIPLE_AUDIO_FORMATS      = unchecked((int)0xC00D1BB8);
        public const int E_AUDIO_BITRATE_STEPDOWN      = unchecked((int)0xC00D1BB9);
        public const int E_INVALID_AUDIO_PEAKRATE      = unchecked((int)0xC00D1BBA);
        public const int E_INVALID_AUDIO_PEAKRATE_2    = unchecked((int)0xC00D1BBB);
        public const int E_INVALID_AUDIO_BUFFERMAX     = unchecked((int)0xC00D1BBC);
        public const int E_MULTIPLE_VIDEO_CODECS       = unchecked((int)0xC00D1BBD);
        public const int E_MULTIPLE_VIDEO_SIZES        = unchecked((int)0xC00D1BBE);
        public const int E_INVALID_VIDEO_BITRATE       = unchecked((int)0xC00D1BBF);
        public const int E_VIDEO_BITRATE_STEPDOWN      = unchecked((int)0xC00D1BC0);
        public const int E_INVALID_VIDEO_PEAKRATE      = unchecked((int)0xC00D1BC1);
        public const int E_INVALID_VIDEO_PEAKRATE_2    = unchecked((int)0xC00D1BC2);
        public const int E_INVALID_VIDEO_WIDTH         = unchecked((int)0xC00D1BC3);
        public const int E_INVALID_VIDEO_HEIGHT        = unchecked((int)0xC00D1BC4);
        public const int E_INVALID_VIDEO_FPS           = unchecked((int)0xC00D1BC5);
        public const int E_INVALID_VIDEO_KEYFRAME      = unchecked((int)0xC00D1BC6);
        public const int E_INVALID_VIDEO_IQUALITY      = unchecked((int)0xC00D1BC7);
        public const int E_INVALID_VIDEO_CQUALITY      = unchecked((int)0xC00D1BC8);
        public const int E_INVALID_VIDEO_BUFFER        = unchecked((int)0xC00D1BC9);
        public const int E_INVALID_VIDEO_BUFFERMAX     = unchecked((int)0xC00D1BCA);
        public const int E_INVALID_VIDEO_BUFFERMAX_2   = unchecked((int)0xC00D1BCB);
        public const int E_INVALID_VIDEO_WIDTH_ALIGN   = unchecked((int)0xC00D1BCC);
        public const int E_INVALID_VIDEO_HEIGHT_ALIGN  = unchecked((int)0xC00D1BCD);
        public const int E_MULTIPLE_SCRIPT_BITRATES    = unchecked((int)0xC00D1BCE);
        public const int E_INVALID_SCRIPT_BITRATE      = unchecked((int)0xC00D1BCF);
        public const int E_MULTIPLE_FILE_BITRATES      = unchecked((int)0xC00D1BD0);
        public const int E_INVALID_FILE_BITRATE        = unchecked((int)0xC00D1BD1);
        public const int E_SAME_AS_INPUT_COMBINATION   = unchecked((int)0xC00D1BD2);
        public const int E_SOURCE_CANNOT_LOOP          = unchecked((int)0xC00D1BD3);
        public const int E_INVALID_FOLDDOWN_COEFFICIENTS = unchecked((int)0xC00D1BD4);
        public const int E_DRMPROFILE_NOTFOUND         = unchecked((int)0xC00D1BD5);
        public const int E_INVALID_TIMECODE            = unchecked((int)0xC00D1BD6);
        public const int E_NO_AUDIO_TIMECOMPRESSION    = unchecked((int)0xC00D1BD7);
        public const int E_NO_TWOPASS_TIMECOMPRESSION  = unchecked((int)0xC00D1BD8);
        public const int E_TIMECODE_REQUIRES_VIDEOSTREAM = unchecked((int)0xC00D1BD9);
        public const int E_NO_MBR_WITH_TIMECODE        = unchecked((int)0xC00D1BDA);
        public const int E_INVALID_INTERLACEMODE       = unchecked((int)0xC00D1BDB);
        public const int E_INVALID_INTERLACE_COMPAT    = unchecked((int)0xC00D1BDC);
        public const int E_INVALID_NONSQUAREPIXEL_COMPAT = unchecked((int)0xC00D1BDD);
        public const int E_INVALID_SOURCE_WITH_DEVICE_CONTROL = unchecked((int)0xC00D1BDE);
        public const int E_CANNOT_GENERATE_BROADCAST_INFO_FOR_QUALITYVBR = unchecked((int)0xC00D1BDF);
        public const int E_EXCEED_MAX_DRM_PROFILE_LIMIT = unchecked((int)0xC00D1BE0);
        public const int E_DEVICECONTROL_UNSTABLE      = unchecked((int)0xC00D1BE1);
        public const int E_INVALID_PIXEL_ASPECT_RATIO  = unchecked((int)0xC00D1BE2);
        public const int E_AUDIENCE__LANGUAGE_CONTENTTYPE_MISMATCH = unchecked((int)0xC00D1BE3);
        public const int E_INVALID_PROFILE_CONTENTTYPE = unchecked((int)0xC00D1BE4);
        public const int E_TRANSFORM_PLUGIN_NOT_FOUND  = unchecked((int)0xC00D1BE5);
        public const int E_TRANSFORM_PLUGIN_INVALID    = unchecked((int)0xC00D1BE6);
        public const int E_EDL_REQUIRED_FOR_DEVICE_MULTIPASS = unchecked((int)0xC00D1BE7);
        public const int E_INVALID_VIDEO_WIDTH_FOR_INTERLACED_ENCODING = unchecked((int)0xC00D1BE8);
        public const int E_DRM_INVALID_APPLICATION     = unchecked((int)0xC00D2711);
        public const int E_DRM_LICENSE_STORE_ERROR     = unchecked((int)0xC00D2712);
        public const int E_DRM_SECURE_STORE_ERROR      = unchecked((int)0xC00D2713);
        public const int E_DRM_LICENSE_STORE_SAVE_ERROR = unchecked((int)0xC00D2714);
        public const int E_DRM_SECURE_STORE_UNLOCK_ERROR = unchecked((int)0xC00D2715);
        public const int E_DRM_INVALID_CONTENT         = unchecked((int)0xC00D2716);
        public const int E_DRM_UNABLE_TO_OPEN_LICENSE  = unchecked((int)0xC00D2717);
        public const int E_DRM_INVALID_LICENSE         = unchecked((int)0xC00D2718);
        public const int E_DRM_INVALID_MACHINE         = unchecked((int)0xC00D2719);
        public const int E_DRM_ENUM_LICENSE_FAILED     = unchecked((int)0xC00D271B);
        public const int E_DRM_INVALID_LICENSE_REQUEST = unchecked((int)0xC00D271C);
        public const int E_DRM_UNABLE_TO_INITIALIZE    = unchecked((int)0xC00D271D);
        public const int E_DRM_UNABLE_TO_ACQUIRE_LICENSE = unchecked((int)0xC00D271E);
        public const int E_DRM_INVALID_LICENSE_ACQUIRED = unchecked((int)0xC00D271F);
        public const int E_DRM_NO_RIGHTS               = unchecked((int)0xC00D2720);
        public const int E_DRM_KEY_ERROR               = unchecked((int)0xC00D2721);
        public const int E_DRM_ENCRYPT_ERROR           = unchecked((int)0xC00D2722);
        public const int E_DRM_DECRYPT_ERROR           = unchecked((int)0xC00D2723);
        public const int E_DRM_LICENSE_INVALID_XML     = unchecked((int)0xC00D2725);
        public const int S_DRM_LICENSE_ACQUIRED        = unchecked((int)0x000D2726);
        public const int S_DRM_INDIVIDUALIZED          = unchecked((int)0x000D2727);
        public const int E_DRM_NEEDS_INDIVIDUALIZATION = unchecked((int)0xC00D2728);
        public const int E_DRM_ALREADY_INDIVIDUALIZED  = unchecked((int)0xC00D2729);
        public const int E_DRM_ACTION_NOT_QUERIED      = unchecked((int)0xC00D272A);
        public const int E_DRM_ACQUIRING_LICENSE       = unchecked((int)0xC00D272B);
        public const int E_DRM_INDIVIDUALIZING         = unchecked((int)0xC00D272C);
        public const int E_DRM_PARAMETERS_MISMATCHED   = unchecked((int)0xC00D272F);
        public const int E_DRM_UNABLE_TO_CREATE_LICENSE_OBJECT = unchecked((int)0xC00D2730);
        public const int E_DRM_UNABLE_TO_CREATE_INDI_OBJECT = unchecked((int)0xC00D2731);
        public const int E_DRM_UNABLE_TO_CREATE_ENCRYPT_OBJECT = unchecked((int)0xC00D2732);
        public const int E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT = unchecked((int)0xC00D2733);
        public const int E_DRM_UNABLE_TO_CREATE_PROPERTIES_OBJECT = unchecked((int)0xC00D2734);
        public const int E_DRM_UNABLE_TO_CREATE_BACKUP_OBJECT = unchecked((int)0xC00D2735);
        public const int E_DRM_INDIVIDUALIZE_ERROR     = unchecked((int)0xC00D2736);
        public const int E_DRM_LICENSE_OPEN_ERROR      = unchecked((int)0xC00D2737);
        public const int E_DRM_LICENSE_CLOSE_ERROR     = unchecked((int)0xC00D2738);
        public const int E_DRM_GET_LICENSE_ERROR       = unchecked((int)0xC00D2739);
        public const int E_DRM_QUERY_ERROR             = unchecked((int)0xC00D273A);
        public const int E_DRM_REPORT_ERROR            = unchecked((int)0xC00D273B);
        public const int E_DRM_GET_LICENSESTRING_ERROR = unchecked((int)0xC00D273C);
        public const int E_DRM_GET_CONTENTSTRING_ERROR = unchecked((int)0xC00D273D);
        public const int E_DRM_MONITOR_ERROR           = unchecked((int)0xC00D273E);
        public const int E_DRM_UNABLE_TO_SET_PARAMETER = unchecked((int)0xC00D273F);
        public const int E_DRM_INVALID_APPDATA         = unchecked((int)0xC00D2740);
        public const int E_DRM_INVALID_APPDATA_VERSION = unchecked((int)0xC00D2741);
        public const int E_DRM_BACKUP_EXISTS           = unchecked((int)0xC00D2742);
        public const int E_DRM_BACKUP_CORRUPT          = unchecked((int)0xC00D2743);
        public const int E_DRM_BACKUPRESTORE_BUSY      = unchecked((int)0xC00D2744);
        public const int S_DRM_MONITOR_CANCELLED       = unchecked((int)0x000D2746);
        public const int S_DRM_ACQUIRE_CANCELLED       = unchecked((int)0x000D2747);
        public const int E_DRM_LICENSE_UNUSABLE        = unchecked((int)0xC00D2748);
        public const int E_DRM_INVALID_PROPERTY        = unchecked((int)0xC00D2749);
        public const int E_DRM_SECURE_STORE_NOT_FOUND  = unchecked((int)0xC00D274A);
        public const int E_DRM_CACHED_CONTENT_ERROR    = unchecked((int)0xC00D274B);
        public const int E_DRM_INDIVIDUALIZATION_INCOMPLETE = unchecked((int)0xC00D274C);
        public const int E_DRM_DRIVER_AUTH_FAILURE     = unchecked((int)0xC00D274D);
        public const int E_DRM_NEED_UPGRADE_MSSAP      = unchecked((int)0xC00D274E);
        public const int E_DRM_REOPEN_CONTENT          = unchecked((int)0xC00D274F);
        public const int E_DRM_DRIVER_DIGIOUT_FAILURE  = unchecked((int)0xC00D2750);
        public const int E_DRM_INVALID_SECURESTORE_PASSWORD = unchecked((int)0xC00D2751);
        public const int E_DRM_APPCERT_REVOKED         = unchecked((int)0xC00D2752);
        public const int E_DRM_RESTORE_FRAUD           = unchecked((int)0xC00D2753);
        public const int E_DRM_HARDWARE_INCONSISTENT   = unchecked((int)0xC00D2754);
        public const int E_DRM_SDMI_TRIGGER            = unchecked((int)0xC00D2755);
        public const int E_DRM_SDMI_NOMORECOPIES       = unchecked((int)0xC00D2756);
        public const int E_DRM_UNABLE_TO_CREATE_HEADER_OBJECT = unchecked((int)0xC00D2757);
        public const int E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT = unchecked((int)0xC00D2758);
        public const int E_DRM_LICENSE_NOTACQUIRED     = unchecked((int)0xC00D2759);
        public const int E_DRM_UNABLE_TO_CREATE_CODING_OBJECT = unchecked((int)0xC00D275A);
        public const int E_DRM_UNABLE_TO_CREATE_STATE_DATA_OBJECT = unchecked((int)0xC00D275B);
        public const int E_DRM_BUFFER_TOO_SMALL        = unchecked((int)0xC00D275C);
        public const int E_DRM_UNSUPPORTED_PROPERTY    = unchecked((int)0xC00D275D);
        public const int E_DRM_ERROR_BAD_NET_RESP      = unchecked((int)0xC00D275E);
        public const int E_DRM_STORE_NOTALLSTORED      = unchecked((int)0xC00D275F);
        public const int E_DRM_SECURITY_COMPONENT_SIGNATURE_INVALID = unchecked((int)0xC00D2760);
        public const int E_DRM_INVALID_DATA            = unchecked((int)0xC00D2761);
        public const int E_DRM_UNABLE_TO_CONTACT_SERVER = unchecked((int)0xC00D2762);
        public const int E_DRM_UNABLE_TO_CREATE_AUTHENTICATION_OBJECT = unchecked((int)0xC00D2763);
        public const int E_DRM_NOT_CONFIGURED          = unchecked((int)0xC00D2764);
        public const int E_DRM_DEVICE_ACTIVATION_CANCELED = unchecked((int)0xC00D2765);
        public const int E_DRM_LICENSE_EXPIRED         = unchecked((int)0xC00D27D8);
        public const int E_DRM_LICENSE_NOTENABLED      = unchecked((int)0xC00D27D9);
        public const int E_DRM_LICENSE_APPSECLOW       = unchecked((int)0xC00D27DA);
        public const int E_DRM_STORE_NEEDINDI          = unchecked((int)0xC00D27DB);
        public const int E_DRM_STORE_NOTALLOWED        = unchecked((int)0xC00D27DC);
        public const int E_DRM_LICENSE_APP_NOTALLOWED  = unchecked((int)0xC00D27DD);
        public const int S_DRM_NEEDS_INDIVIDUALIZATION = unchecked((int)0x000D27DE);
        public const int E_DRM_LICENSE_CERT_EXPIRED    = unchecked((int)0xC00D27DF);
        public const int E_DRM_LICENSE_SECLOW          = unchecked((int)0xC00D27E0);
        public const int E_DRM_LICENSE_CONTENT_REVOKED = unchecked((int)0xC00D27E1);
        public const int E_DRM_LICENSE_NOSAP           = unchecked((int)0xC00D280A);
        public const int E_DRM_LICENSE_NOSVP           = unchecked((int)0xC00D280B);
        public const int E_DRM_LICENSE_NOWDM           = unchecked((int)0xC00D280C);
        public const int E_DRM_LICENSE_NOTRUSTEDCODEC  = unchecked((int)0xC00D280D);
        public const int E_DRM_NEEDS_UPGRADE_TEMPFILE  = unchecked((int)0xC00D283D);
        public const int E_DRM_NEED_UPGRADE_PD         = unchecked((int)0xC00D283E);
        public const int E_DRM_SIGNATURE_FAILURE       = unchecked((int)0xC00D283F);
        public const int E_DRM_LICENSE_SERVER_INFO_MISSING = unchecked((int)0xC00D2840);
        public const int E_DRM_BUSY                    = unchecked((int)0xC00D2841);
        public const int E_DRM_PD_TOO_MANY_DEVICES     = unchecked((int)0xC00D2842);
        public const int E_DRM_INDIV_FRAUD             = unchecked((int)0xC00D2843);
        public const int E_DRM_INDIV_NO_CABS           = unchecked((int)0xC00D2844);
        public const int E_DRM_INDIV_SERVICE_UNAVAILABLE = unchecked((int)0xC00D2845);
        public const int E_DRM_RESTORE_SERVICE_UNAVAILABLE = unchecked((int)0xC00D2846);
        public const int S_REBOOT_RECOMMENDED          = unchecked((int)0x000D2AF8);
        public const int S_REBOOT_REQUIRED             = unchecked((int)0x000D2AF9);
        public const int E_REBOOT_RECOMMENDED          = unchecked((int)0xC00D2AFA);
        public const int E_REBOOT_REQUIRED             = unchecked((int)0xC00D2AFB);
        public const int E_UNKNOWN_PROTOCOL            = unchecked((int)0xC00D2EE0);
        public const int E_REDIRECT_TO_PROXY           = unchecked((int)0xC00D2EE1);
        public const int E_INTERNAL_SERVER_ERROR       = unchecked((int)0xC00D2EE2);
        public const int E_BAD_REQUEST                 = unchecked((int)0xC00D2EE3);
        public const int E_ERROR_FROM_PROXY            = unchecked((int)0xC00D2EE4);
        public const int E_PROXY_TIMEOUT               = unchecked((int)0xC00D2EE5);
        public const int E_SERVER_UNAVAILABLE          = unchecked((int)0xC00D2EE6);
        public const int E_REFUSED_BY_SERVER           = unchecked((int)0xC00D2EE7);
        public const int E_INCOMPATIBLE_SERVER         = unchecked((int)0xC00D2EE8);
        public const int E_MULTICAST_DISABLED          = unchecked((int)0xC00D2EE9);
        public const int E_INVALID_REDIRECT            = unchecked((int)0xC00D2EEA);
        public const int E_ALL_PROTOCOLS_DISABLED      = unchecked((int)0xC00D2EEB);
        public const int E_MSBD_NO_LONGER_SUPPORTED    = unchecked((int)0xC00D2EEC);
        public const int E_PROXY_NOT_FOUND             = unchecked((int)0xC00D2EED);
        public const int E_CANNOT_CONNECT_TO_PROXY     = unchecked((int)0xC00D2EEE);
        public const int E_SERVER_DNS_TIMEOUT          = unchecked((int)0xC00D2EEF);
        public const int E_PROXY_DNS_TIMEOUT           = unchecked((int)0xC00D2EF0);
        public const int E_CLOSED_ON_SUSPEND           = unchecked((int)0xC00D2EF1);
        public const int E_CANNOT_READ_PLAYLIST_FROM_MEDIASERVER = unchecked((int)0xC00D2EF2);
        public const int E_SESSION_NOT_FOUND           = unchecked((int)0xC00D2EF3);
        public const int E_REQUIRE_STREAMING_CLIENT    = unchecked((int)0xC00D2EF4);
        public const int E_PLAYLIST_ENTRY_HAS_CHANGED  = unchecked((int)0xC00D2EF5);
        public const int E_PROXY_ACCESSDENIED          = unchecked((int)0xC00D2EF6);
        public const int E_PROXY_SOURCE_ACCESSDENIED   = unchecked((int)0xC00D2EF7);
        public const int E_NETWORK_SINK_WRITE          = unchecked((int)0xC00D2EF8);
        public const int E_FIREWALL                    = unchecked((int)0xC00D2EF9);
        public const int E_MMS_NOT_SUPPORTED           = unchecked((int)0xC00D2EFA);
        public const int E_SERVER_ACCESSDENIED         = unchecked((int)0xC00D2EFB);
        public const int E_RESOURCE_GONE               = unchecked((int)0xC00D2EFC);
        public const int E_NO_EXISTING_PACKETIZER      = unchecked((int)0xC00D2EFD);
        public const int E_BAD_SYNTAX_IN_SERVER_RESPONSE = unchecked((int)0xC00D2EFE);
        public const int I_RECONNECTED                 = unchecked((int)0x400D2EFF);
        public const int E_RESET_SOCKET_CONNECTION     = unchecked((int)0xC00D2F00);
        public const int I_NOLOG_STOP                  = unchecked((int)0x400D2F01);
        public const int E_TOO_MANY_HOPS               = unchecked((int)0xC00D2F02);
        public const int I_EXISTING_PACKETIZER         = unchecked((int)0x400D2F03);
        public const int I_MANUAL_PROXY                = unchecked((int)0x400D2F04);
        public const int E_TOO_MUCH_DATA_FROM_SERVER   = unchecked((int)0xC00D2F05);
        public const int E_CONNECT_TIMEOUT             = unchecked((int)0xC00D2F06);
        public const int E_PROXY_CONNECT_TIMEOUT       = unchecked((int)0xC00D2F07);
        public const int E_SESSION_INVALID             = unchecked((int)0xC00D2F08);
        public const int S_EOSRECEDING                 = unchecked((int)0x000D2F09);
        public const int E_PACKETSINK_UNKNOWN_FEC_STREAM = unchecked((int)0xC00D2F0A);
        public const int E_PUSH_CANNOTCONNECT          = unchecked((int)0xC00D2F0B);
        public const int E_INCOMPATIBLE_PUSH_SERVER    = unchecked((int)0xC00D2F0C);
        public const int S_CHANGENOTICE                = unchecked((int)0x000D2F0D);
        public const int E_END_OF_PLAYLIST             = unchecked((int)0xC00D32C8);
        public const int E_USE_FILE_SOURCE             = unchecked((int)0xC00D32C9);
        public const int E_PROPERTY_NOT_FOUND          = unchecked((int)0xC00D32CA);
        public const int E_PROPERTY_READ_ONLY          = unchecked((int)0xC00D32CC);
        public const int E_TABLE_KEY_NOT_FOUND         = unchecked((int)0xC00D32CD);
        public const int E_INVALID_QUERY_OPERATOR      = unchecked((int)0xC00D32CF);
        public const int E_INVALID_QUERY_PROPERTY      = unchecked((int)0xC00D32D0);
        public const int E_PROPERTY_NOT_SUPPORTED      = unchecked((int)0xC00D32D2);
        public const int E_SCHEMA_CLASSIFY_FAILURE     = unchecked((int)0xC00D32D4);
        public const int E_METADATA_FORMAT_NOT_SUPPORTED = unchecked((int)0xC00D32D5);
        public const int E_METADATA_NO_EDITING_CAPABILITY = unchecked((int)0xC00D32D6);
        public const int E_METADATA_CANNOT_SET_LOCALE  = unchecked((int)0xC00D32D7);
        public const int E_METADATA_LANGUAGE_NOT_SUPORTED = unchecked((int)0xC00D32D8);
        public const int E_METADATA_NO_RFC1766_NAME_FOR_LOCALE = unchecked((int)0xC00D32D9);
        public const int E_METADATA_NOT_AVAILABLE      = unchecked((int)0xC00D32DA);
        public const int E_METADATA_CACHE_DATA_NOT_AVAILABLE = unchecked((int)0xC00D32DB);
        public const int E_METADATA_INVALID_DOCUMENT_TYPE = unchecked((int)0xC00D32DC);
        public const int E_METADATA_IDENTIFIER_NOT_AVAILABLE = unchecked((int)0xC00D32DD);
        public const int E_METADATA_CANNOT_RETRIEVE_FROM_OFFLINE_CACHE = unchecked((int)0xC00D32DE);

        public const int I_NO_EVENTS               = unchecked((int)0x400D0069);
        public const int E_REGKEY_NOT_FOUND        = unchecked((int)0xC00D006A);
    }

    sealed public class WMError
    {
        /// <summary>
        /// Prevent people from trying to instantiate this class
        /// </summary>
        private WMError()
        {
        }


        /// <summary>
        /// From #defines in WinBase.h
        /// </summary>
        [Flags]
        private enum LoadLibraryExFlags
        {
            DontResolveDllReferences     = 0x00000001,
            LoadLibraryAsDataFile        = 0x00000002,
            LoadWithAlteredSearchPath   = 0x00000008,
            LoadIgnoreCodeAuthzLevel    = 0x00000010
        }


        /// <summary>
        /// From FORMAT_MESSAGE_* defines in WinBase.h
        /// </summary>
        [Flags]
        private enum FormatMessageFlags
        {
            AllocateBuffer  = 0x00000100,
            IgnoreInserts   = 0x00000200,
            FromString      = 0x00000400,
            FromHmodule     = 0x00000800,
            FromSystem      = 0x00001000,
            ArgumentArray   = 0x00002000,
            MaxWidthMask    = 0x000000FF
        }


        [DllImport("kernel32.dll", CharSet=System.Runtime.InteropServices.CharSet.Unicode)]
        private static extern int FormatMessage(FormatMessageFlags dwFlags, IntPtr lpSource, 
            int dwMessageId, int dwLanguageId, ref IntPtr lpBuffer, int nSize, IntPtr Arguments);

        [DllImport("kernel32.dll")]
        private static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hFile, LoadLibraryExFlags dwFlags);

        [DllImport("kernel32.dll")][return: MarshalAs(UnmanagedType.Bool)] 
        private static extern bool FreeLibrary(IntPtr hFile);

        [DllImport("kernel32.dll", SetLastError=true)]
        private static extern IntPtr LocalFree(IntPtr hMem);

        public static string GetErrorText(int hr)
        {
            string sRet = null;
            IntPtr hModule;
            FormatMessageFlags dwFormatFlags = FormatMessageFlags.AllocateBuffer | FormatMessageFlags.IgnoreInserts | FormatMessageFlags.FromSystem;
            int dwBufferLength;
            IntPtr ip = IntPtr.Zero;

            // Load the Windows Media error message dll
            hModule = LoadLibraryEx("wmerror.dll", IntPtr.Zero, LoadLibraryExFlags.LoadLibraryAsDataFile );
            if (hModule != IntPtr.Zero)
            {
                // If the load succeeds, make sure we look in it
                dwFormatFlags |= FormatMessageFlags.FromHmodule;
            }

            // Scan both the Windows Media library, and the system library looking for the message
            dwBufferLength = FormatMessage(
                dwFormatFlags,
                hModule, // module to get message from (NULL == system)
                hr, // error number to get message for
                0, // default language
                ref ip,
                0,
                IntPtr.Zero
                );

            try
            {
                // Convert the returned buffer to a string.  If ip is null (due to not finding 
                // the message), no exception is thrown.  sRet just stays null.  The 
                // try/finally is for the (remote) possibility that we run out of memory 
                // creating the string.
                sRet = Marshal.PtrToStringUni(ip);
            }
            finally
            {
                // Cleanup
                FreeLibrary(hModule);
                LocalFree(ip);
            }

            return sRet;
        }


        /// <summary>
        /// If hr has a "failed" status code (E_*), throw an exception.  Note that status
        /// messages (S_*) are not considered failure codes.  If Windows Media error text
        /// is available, it is used to build the exception, otherwise a generic com error
        /// is thrown.
        /// </summary>
        /// <param name="hr">The HRESULT to check</param>
        public static void ThrowExceptionForHR(int hr)
        {
            // If an error has occurred
            if (hr < 0)
            {
                // If a string is returned, build a com error from it
                string buf = GetErrorText(hr);
                if (buf != null)
                {
                    throw new COMException(buf, hr);
                }
                else
                {
                    // No string, just use standard com error
                    Marshal.ThrowExceptionForHR(hr);
                }
            }
        }

    }
}
